Rumah  >  Artikel  >  pangkalan data  >  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?

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?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-25 12:37:02856semak imbas

Here are a few title options, keeping in mind the question format and the article's focus:

**Option 1 (Direct & Concise):** 
How to Remove Duplicates After Creating a Non-Unique Index in MySQL?

**Option 2 (More Specific):**
MySQL Duplicate Rows: How to

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:

  1. Salin data ke dalam jadual sementara.
  2. Potong jadual asal.
  3. Buat indeks unik pada jadual .
  4. Masukkan kembali data ke dalam jadual asal menggunakan INSERT IGNORE.

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!

Kenyataan:
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