Mengalih keluar Pendua dengan Indeks Unik
Dalam senario yang diberikan, pendua telah dimasukkan secara tidak sengaja ke dalam jadual kerana salah konfigurasi indeks pada lajur A, B, C dan D. Walaupun bertujuan untuk mengelakkan pendua, indeks yang dibuat ialah indeks biasa dan bukannya indeks unik.
Pelaksanaan Pertanyaan
Jika percubaan dibuat untuk mengubah indeks sedia ada daripada biasa kepada unik atau menambah indeks unik baharu untuk lajur yang sama, pertanyaan akan gagal disebabkan kehadiran rekod pendua.
Penyelesaian Ganti dengan IGNORE Pilihan (Pra-5.7.4)
Menggunakan pilihan IGNORE dalam sintaks ALTER TABLE membolehkan penyingkiran pendua:
<code class="sql">ALTER IGNORE TABLE mytable ADD UNIQUE INDEX myindex (A, B, C, D);</code>
Ini akan membuang baris pendua, tetapi ia adalah penting untuk ambil perhatian bahawa dokumentasi tidak menyatakan baris mana yang akan disimpan.
Penyelesaian untuk MySQL 5.7.4 dan Ke Atas
Untuk versi 5.7.4 dan lebih tinggi, ABAIKAN tidak lagi disokong dalam ALTER TABLE. Walau bagaimanapun, pendekatan berikut boleh digunakan:
Proses ini akan mengalih keluar pendua semasa operasi INSERT.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan dan fokus artikel: **Pilihan 1 (Terus & Ringkas):** Bagaimana untuk Mengeluarkan Pendua Selepas Mencipta Indeks Bukan Unik dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!