Membersihkan Rekod Pendua daripada Pangkalan Data MySQL: Penyelesaian Utama Unik
Mengekalkan integriti data adalah penting untuk operasi yang cekap bagi mana-mana pangkalan data. Dalam keadaan ini, anda menemui jadual dengan lajur 'id' dan 'tajuk', di mana 'tajuk' harus berbeza. Bagaimanapun, kehadiran lebih 600,000 rekod, termasuk banyak pendua, menimbulkan cabaran dalam mencapai keunikan. Matlamat kami adalah untuk menghapuskan entri pendua ini tanpa menjejaskan sebarang tajuk unik.
Penyelesaian terletak pada menggunakan kuasa kekangan kunci yang unik. Dengan menambahkan kunci UNIK pada lajur 'tajuk', kami boleh menguatkuasakan keunikan dengan berkesan dan menghalang rekod pendua daripada dimasukkan atau dikemas kini. Walau bagaimanapun, penambahan terus kunci unik pada lajur dengan pendua sedia ada akan mengakibatkan ralat.
Untuk menangani isu ini, kami menggunakan perintah 'ALTER IGNORE TABLE' diikuti dengan klausa 'TAMBAH KUNCI UNIK'. Perintah ini mengarahkan MySQL untuk mengabaikan ralat yang mungkin timbul semasa penambahan kunci unik. Akibatnya, semua baris pendua yang mungkin melanggar kekangan unik digugurkan secara senyap, menghapuskan pendua dengan berkesan.
Berikut ialah sintaks perintah yang boleh anda gunakan:
<code class="sql">ALTER IGNORE TABLE table ADD UNIQUE KEY idx1(title);</code>
Perhatikan bahawa arahan ini mungkin tidak serasi dengan jadual InnoDB dalam versi MySQL tertentu. Untuk kes sedemikian, rujuk siaran ini untuk penyelesaian alternatif.
Dengan melaksanakan arahan ini, anda mewujudkan kunci unik untuk lajur 'tajuk' dan mengalih keluar semua rekod pendua dalam satu masa. Ini membolehkan anda mengekalkan integriti data sambil memastikan keunikan tajuk.
Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Rekod Pendua dalam Pangkalan Data MySQL dengan Kekangan Utama yang Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!