Apabila memasukkan berbilang baris data pada masa yang sama dalam MySQL, anda mungkin perlu menyemak sama ada terdapat nilai pendua dalam kunci unik, dan melakukan kemas kini atau operasi memasukkan mengikut situasi.
Untuk melakukan ini, anda boleh menggunakan klausa ON DUPLICATE KEY UPDATE. Walau bagaimanapun, untuk data berbilang baris, cara ini dilaksanakan bergantung pada versi MySQL anda.
Untuk versi 8.0.19 dan ke atas, anda boleh menggunakan alias untuk mengenal pasti baris yang ingin anda kemas kini:
<code class="language-sql">INSERT INTO beautiful (name, age) VALUES ('Helen', 24), ('Katrina', 21), ('Samia', 22), ('Hui Ling', 25), ('Yumie', 29) AS new ON DUPLICATE KEY UPDATE age = new.age ...</code>
Untuk versi terdahulu, anda boleh menggunakan kata kunci VALUES untuk menentukan nilai baris yang akan dikemas kini:
<code class="language-sql">INSERT INTO beautiful (name, age) VALUES ('Helen', 24), ('Katrina', 21), ('Samia', 22), ('Hui Ling', 25), ('Yumie', 29) ON DUPLICATE KEY UPDATE age = VALUES(age), ...</code>
Dengan kaedah di atas, anda boleh melakukan kemas kini kelompok atau operasi sisipan menggunakan satu pertanyaan, memastikan integriti data, mengemas kini baris sedia ada dan memasukkan baris baharu apabila perlu.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Sisipan Pukal dengan ON DUPLICATE KEY UPDATE dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!