MySQL ALTER IGNORE TABLE Menyebabkan Pelanggaran Kekangan Integriti
Mengubah suai jadual MySQL menggunakan ALTER IGNORE TABLE untuk mengalih keluar nilai pendua sambil menambah kunci unik harus mengelakkan ralat kunci pendua. Walau bagaimanapun, pengguna telah mengalami ralat "Pelanggaran kekangan integriti" walaupun menggunakan bendera IGNORE.
Penjelasan:
Dokumentasi MySQL menyatakan bahawa IGNORE mengarahkan pangkalan data untuk melangkau pendua baris pada kekunci unik semasa operasi ALTER TABLE. Tetapi dalam beberapa kes, terutamanya dengan jadual InnoDB, nampaknya terdapat pepijat dalam sambungan IGNORE yang membawa kepada pelanggaran kekangan integriti.
Penyelesaian:
Untuk menyelesaikan masalah isu, pertimbangkan penyelesaian berikut:
Tukar kepada Enjin MyISAM:
Tambah Indeks Unik dengan IGNORE:
Tukar Kembali ke InnoDB:
Nota:
Atas ialah kandungan terperinci Mengapa ALTER IGNORE TABLE Masih Mengakibatkan Pelanggaran Kekangan Integriti dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!