Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan Baris Pendua ke dalam Jadual MySQL Tanpa Menyenaraikan Lajur?

Bagaimana untuk Memasukkan Baris Pendua ke dalam Jadual MySQL Tanpa Menyenaraikan Lajur?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-12 14:41:02966semak imbas

How to Insert Duplicate Rows into a MySQL Table Without Listing Columns?

Menyalin Baris ke dalam Jadual MySQL yang Sama Tanpa Penyenaraian Lajur

Dalam MySQL, seseorang boleh menghadapi ralat "Entri pendua 'xxx' untuk kunci 1 " apabila cuba memasukkan baris ke dalam jadual yang sudah mengandungi nilai kunci utama yang sama. Ini kerana MySQL menguatkuasakan nilai unik untuk kunci utama.

Untuk menyelesaikan isu ini sambil mengelakkan penyenaraian manual semua lajur, kaedah yang lebih mudah wujud:

  1. Buat jadual sementara dengan yang sama skema sebagai jadual asal:
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
  1. Kemas kini lajur kunci utama dalam jadual sementara kepada NULL:
UPDATE tmptable_1 SET primarykey = NULL;
  1. Masukkan baris diubah suai ke dalam jadual asal:
INSERT INTO table SELECT * FROM tmptable_1;
  1. Lepaskan jadual sementara:
DROP TEMPORARY TABLE IF EXISTS tmptable_1;

Dengan menetapkan kunci utama kepada NULL dalam jadual sementara , MySQL boleh menjana nilai unik baharu secara automatik apabila memasukkan baris ke dalam jadual utama, sekali gus mengelakkan ralat kemasukan pendua.

Untuk jaminan tambahan, pertimbangkan untuk menambah klausa LIMIT 1 pada penghujung baris INSERT INTO untuk memastikan hanya satu baris dimasukkan.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Baris Pendua ke dalam Jadual MySQL Tanpa Menyenaraikan Lajur?. 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