Rumah >pangkalan data >tutorial mysql >Entri pendua untuk kunci 'PRIMER' - Cara menyelesaikan ralat MySQL: Rekod pendua kunci utama
Cara menyelesaikan ralat MySQL: Rekod kunci primer pendua, contoh kod khusus diperlukan
Apabila menggunakan pangkalan data MySQL, kami sering menghadapi masalah rekod kunci utama pendua. Apabila kami memasukkan sekeping data baharu ke dalam pangkalan data, jika nilai kunci utama data adalah sama dengan nilai kunci utama rekod sedia ada, ralat rekod kunci primer pendua akan berlaku. Gesaan untuk ralat ini biasanya "Entri pendua untuk kunci 'PRIMER'".
Jadi, bagaimana untuk menyelesaikan masalah ini? Artikel ini akan menyediakan beberapa penyelesaian dan memberikan contoh kod khusus.
Contoh kod:
INSERT INTO table_name (id, name, age) VALUES (1, 'John', 30) ON DUPLICATE KEY UPDATE name = 'John', age = 30;
Dalam contoh di atas, kami memasukkan sekeping data ke dalam jadual bernama table_name Jika id kunci utama data sudah wujud, pernyataan UPDATE akan dilaksanakan untuk mengemas kini nilai-nilai. medan nama dan umur rekod yang sepadan.
Contoh kod:
INSERT IGNORE INTO table_name (id, name, age) VALUES (1, 'John', 30);
Dalam contoh di atas, jika rekod dengan id 1 sudah wujud, ralat akan diabaikan dan operasi sisipan akan diteruskan.
Kod sampel:
SET @max_id = (SELECT MAX(id) FROM table_name); INSERT INTO table_name (id, name, age) VALUES (@max_id + 1, 'John', 30);
Dalam contoh di atas, kami menanyakan nilai maksimum id dalam jadual semasa dan menyimpannya dalam pembolehubah @max_id. Kemudian, apabila memasukkan sekeping data, tetapkan id kepada @max_id + 1 untuk memastikan id rekod yang baru dimasukkan tidak bertindih dengan rekod sedia ada.
Perlu diingatkan bahawa anda perlu berhati-hati apabila mengubah suai nilai kunci utama untuk memastikan masalah lain tidak diperkenalkan.
Ringkasan:
Rekod kunci primer pendua ialah salah satu ralat biasa dalam MySQL. Apabila menyelesaikan masalah ini, anda boleh menggunakan kenyataan ON DUPLICATE KEY UPDATE untuk mengemas kini rekod sedia ada, gunakan pernyataan INSERT IGNORE untuk mengabaikan ralat rekod pendua atau mengubah suai nilai kunci utama untuk mengelakkan pertindihan. Pilih penyelesaian yang tepat untuk situasi anda dan sesuaikan kod anda dengan keperluan sebenar anda.
Saya harap penyelesaian dan contoh kod yang disediakan dalam artikel ini dapat membantu anda menyelesaikan ralat MySQL: masalah rekod kunci primer pendua.
Atas ialah kandungan terperinci Entri pendua untuk kunci 'PRIMER' - Cara menyelesaikan ralat MySQL: Rekod pendua kunci utama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!