Rumah > pangkalan data > tutorial mysql > Kunci Pendua: Abaikan atau Kemas Kini?

Kunci Pendua: Abaikan atau Kemas Kini?

DDD
Lepaskan: 2024-12-03 08:09:09
asal
696 orang telah melayarinya

Duplicate Keys: Ignore or Update?

Mengatasi Ralat Kunci Pendua: Mengabaikan atau Mengemas kini?

Apabila bekerja dengan kunci unik, adalah perkara biasa untuk menghadapi situasi di mana entri pendua mungkin timbul. Jika anda ingin mengendalikan pendua ini dengan baik, anda boleh mempertimbangkan untuk menggunakan sama ada INSERT IGNORE atau ON DUPLICATE KEY UPDATE.

Jika matlamat anda adalah untuk mengabaikan tag pendua dan terus memasukkan yang berikutnya, menggunakan INSERT IGNORE mungkin kelihatan seperti pilihan yang sesuai. Walau bagaimanapun, perlu diingat bahawa INSERT IGNORE mengabaikan semua ralat, yang mungkin membawa kepada isu integriti data yang berpotensi.

Pendekatan yang lebih disyorkan ialah menggunakan ON DUPLICATE KEY UPDATE bersama dengan kunci unik. Dalam kes anda, teg ialah kunci unik. Pertanyaan berikut menunjukkan cara untuk mencapai ini:

INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c')
ON DUPLICATE KEY UPDATE tag=tag;
Salin selepas log masuk

Dengan menggunakan pendekatan ini, pangkalan data akan mengemas kini teg sedia ada dengan nilai baharu, menghalang entri pendua. Setelah pelaksanaan berjaya, anda akan menerima output pertanyaan yang serupa dengan:

Query OK, 0 rows affected (0.07 sec)
Salin selepas log masuk

Atas ialah kandungan terperinci Kunci Pendua: Abaikan atau Kemas Kini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan