Rumah  >  Artikel  >  pangkalan data  >  Entri pendua untuk 'unique_key_constraint' kunci - Bagaimana untuk menyelesaikan ralat MySQL: kekangan kunci unik rekod pendua

Entri pendua untuk 'unique_key_constraint' kunci - Bagaimana untuk menyelesaikan ralat MySQL: kekangan kunci unik rekod pendua

WBOY
WBOYasal
2023-10-05 10:00:501120semak imbas

Duplicate entry for key 'unique_key_constraint' - 如何解决MySQL报错:唯一键约束重复记录

Cara menyelesaikan ralat MySQL: Rekod pendua dikekang oleh kunci unik, contoh kod khusus diperlukan

Apabila menggunakan pangkalan data MySQL, kami sering menghadapi masalah rekod pendua yang dikekang oleh kunci unik. Apabila cuba memasukkan sekeping data ke dalam jadual, jika terdapat rekod dengan kekangan kunci unik yang sama, mesej ralat "Entri pendua untuk kunci 'unique_key_constraint'" akan muncul. Ralat ini menunjukkan bahawa rekod yang kami cuba masukkan bercanggah dengan rekod sedia ada dan melanggar kekangan kunci unik.

Jadi, apabila kita menghadapi ralat ini, bagaimana untuk menyelesaikannya? Beberapa penyelesaian biasa akan diperkenalkan di bawah, disertakan dengan contoh kod tertentu.

Penyelesaian 1: Padamkan rekod pendua

Cara paling mudah dan langsung ialah memadam rekod pendua. Kita boleh menggunakan kenyataan DELETE untuk memadam rekod pendua dengan rekod yang bercanggah. Berikut ialah kod sampel:

DELETE FROM 表名 WHERE 唯一键列名 = '冲突值';

Sebagai contoh, kami mempunyai jadual bernama "pelajar", yang mempunyai lajur kekangan kunci unik "id_pelajar", dan kini kami mahu memasukkan rekod dengan student_id 1001, tetapi rekod itu sudah wujud . Kami boleh menggunakan kod berikut untuk memadam rekod bercanggah ini:

DELETE FROM students WHERE student_id = 1001;

Penyelesaian 2: Kemas kini rekod pendua

Selain memadamkan rekod pendua, kami juga boleh mempertimbangkan untuk mengemas kini rekod pendua. Kita boleh menggunakan kenyataan UPDATE untuk mengemas kini rekod yang merupakan pendua rekod bercanggah. Berikut ialah contoh kod:

UPDATE 表名 SET 列名1 = '新值1', 列名2 = '新值2', ... WHERE 唯一键列名 = '冲突值';

Sebagai contoh, kami mempunyai jadual bernama "pengguna", yang mempunyai lajur kekangan kunci unik "nama pengguna". Sekarang kami ingin memasukkan rekod dengan nama pengguna "admin", tetapi rekodnya sudah wujud. Kami boleh menggunakan kod berikut untuk mengemas kini nilai medan lain rekod bercanggah ini:

UPDATE users SET password = 'newPassword' WHERE username = 'admin';

Penyelesaian tiga: Abaikan rekod pendua

Jika kita tidak mahu memadam atau mengemas kini rekod pendua, tetapi mahu rekod yang dimasukkan diabaikan , kita boleh menggunakan pernyataan INSERT IGNORE. Pernyataan INSERT IGNORE mengabaikan rekod yang bercanggah dengan kekangan kunci unik semasa memasukkan rekod. Berikut ialah contoh kod:

INSERT IGNORE INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);

Sebagai contoh, kami ingin memasukkan rekod ke dalam jadual bernama "pesanan" yang lajur kekangan kunci uniknya ialah "order_number". Kami boleh menggunakan kod berikut untuk mengabaikan operasi sisipan rekod bercanggah:

INSERT IGNORE INTO orders (order_number, customer_id, total_amount) VALUES ('1001', '12345', '100.00');

Ringkasnya, apabila menghadapi ralat MySQL "Entri pendua untuk kunci 'unique_key_constraint'", kami boleh memadamkan rekod pendua, mengemas kini rekod pendua atau mengabaikan Pendua rekod untuk menyelesaikan masalah ini. Pilih penyelesaian yang sesuai berdasarkan situasi anda dan gunakan contoh kod di atas. Semoga kandungan di atas dapat membantu anda!

Atas ialah kandungan terperinci Entri pendua untuk 'unique_key_constraint' kunci - Bagaimana untuk menyelesaikan ralat MySQL: kekangan kunci unik rekod pendua. 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