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;
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!