Rumah > pangkalan data > tutorial mysql > Mengapa ALTER IGNORE TABLE Gagal dengan InnoDB dan Cara Mengatasinya?

Mengapa ALTER IGNORE TABLE Gagal dengan InnoDB dan Cara Mengatasinya?

Barbara Streisand
Lepaskan: 2024-11-10 01:47:02
asal
327 orang telah melayarinya

Why Does ALTER IGNORE TABLE Fail with InnoDB and How to Workaround It?

MySQL: Memahami Had ALTER IGNORE TABLE dengan InnoDB

Arahan ALTER IGNORE TABLE bertujuan untuk membantu dalam mengalih keluar pendua daripada MySQL jadual dengan menambah indeks unik. Walau bagaimanapun, pengguna telah mengalami ralat yang tidak dijangka semasa menggunakan arahan ini, seperti ralat "Pelanggaran kekangan integriti".

Menurut dokumentasi MySQL, kata kunci IGNORE harus membenarkan untuk mengabaikan ralat kunci pendua semasa proses pengubahan. Walau bagaimanapun, pepijat yang jelas dalam versi InnoDB MySQL pada keluaran tertentu telah dikenal pasti. Pepijat ini menghalang kata kunci IGNORE daripada berfungsi seperti yang diharapkan.

Sebagai penyelesaian, pengguna boleh mempertimbangkan untuk menukar jadual kepada MyISAM, menambah indeks unik dengan IGNORE dan kemudian menukar kembali kepada InnoDB. Proses ini digariskan seperti berikut:

ALTER TABLE table ENGINE MyISAM;
ALTER IGNORE TABLE table ADD UNIQUE INDEX dupidx (field);
ALTER TABLE table ENGINE InnoDB;
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa penyelesaian ini mungkin tidak berdaya maju jika jadual mempunyai kekangan kunci asing, kerana kekangan ini perlu dialih keluar sebelum penukaran dan kemudian ditambah kembali selepas itu.

Atas ialah kandungan terperinci Mengapa ALTER IGNORE TABLE Gagal dengan InnoDB dan Cara Mengatasinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan