Dalam pangkalan data anda, anda bertujuan untuk menghalang rekod pendua dengan mencipta indeks unik pada medan A, B, C dan D. Walau bagaimanapun, anda tersilap mencipta indeks biasa sebaliknya, membawa kepada sisipan pendua. Dengan 20 juta rekod yang dipertaruhkan, anda sememangnya teragak-agak untuk membuat perubahan.
Apabila anda menukar indeks sedia ada kepada indeks unik atau menambah yang baharu, Tingkah laku MySQL bergantung pada sama ada terdapat pendua:
Untuk menangani isu ini dalam MySQL 5.7.4 atau lebih baharu, ikut langkah berikut:
Kaedah ini berkesan mengalih keluar pendua sambil mengekalkan data yang tinggal.
Untuk versi MySQL sebelum 5.7.4, anda boleh menggunakan klausa IGNORE dalam pernyataan ALTER TABLE anda untuk mengalih keluar pendua tanpa menyatakan baris mana yang dikekalkan. Walau bagaimanapun, anda mungkin mahu memastikan anda mempunyai sandaran data anda sebelum mencuba operasi ini.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Membetulkan Rekod Pendua Selepas Mencipta Indeks Bukan Unik dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!