Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Rekod Pendua dalam MySQL Tanpa Menggunakan Jadual Sementara?
Memadam Rekod Pendua daripada Jadual MySQL tanpa Jadual Sementara
Mengekalkan integriti data dalam pangkalan data MySQL adalah penting dan mengalih keluar rekod pendua selalunya tugas yang perlu. Banyak penyelesaian wujud untuk masalah ini, tetapi sesetengahnya mungkin melibatkan penggunaan jadual sementara, yang boleh intensif sumber. Artikel ini membentangkan kaedah alternatif untuk memadam rekod pendua tanpa menggunakan jadual sementara.
Menggunakan Indeks Unik
Jika jadual tidak mempunyai lajur kunci utama, anda boleh mencipta indeks unik pada lajur yang mengenal pasti rekod secara unik. Dalam kes ini, id_ahli lajur, nombor_kuiz, nombor_soalan dan nombor_jawapan hendaklah membentuk indeks unik. Dengan menambahkan indeks ini, pangkalan data akan menguatkuasakan keunikan secara automatik, menghalang rekod pendua daripada dimasukkan pada masa hadapan.
ALTER IGNORE TABLE `TableA` ADD UNIQUE INDEX (`member_id`, `quiz_num`, `question_num`, `answer_num`);
Menggunakan Kunci Utama dan Subkueri
Sebagai alternatif, anda boleh menambah kunci utama pada jadual dan menggunakan subkueri untuk mengenal pasti dan memadam rekod pendua. Untuk menambah kunci utama, laksanakan pertanyaan berikut:
ALTER TABLE `TableA` ADD PRIMARY KEY (`id`);
Setelah kunci utama tersedia, anda boleh menggunakan pertanyaan berikut untuk memadamkan rekod pendua:
DELETE FROM member WHERE id IN ( SELECT * FROM ( SELECT id FROM member GROUP BY member_id, quiz_num, question_num, answer_num HAVING (COUNT(*) > 1) ) AS A );
Pertanyaan ini mula-mula mengenal pasti rekod pendua menggunakan subquery dan kemudian mengeluarkannya daripada jadual. Lajur id digunakan untuk memastikan sekurang-kurangnya satu rekod dikekalkan untuk setiap set pendua.
Memilih Kaedah yang Sesuai
Kedua-dua kaedah secara berkesan mengalih keluar rekod pendua tanpa jadual sementara . Pilihan antara mereka bergantung pada keperluan khusus dan struktur jadual. Jika sisipan rekod pendua di masa hadapan adalah kebimbangan, mencipta indeks unik adalah disyorkan. Jika tidak, menggunakan kunci utama dan subkueri boleh menjadi penyelesaian yang cekap untuk penyingkiran pendua sekali.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod Pendua dalam MySQL Tanpa Menggunakan Jadual Sementara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!