Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Sisipan Pukal dengan ON DUPLICATE KEY UPDATE dalam MySQL?

Bagaimana untuk Melakukan Sisipan Pukal dengan ON DUPLICATE KEY UPDATE dalam MySQL?

Susan Sarandon
Susan Sarandonasal
2025-01-11 07:14:42738semak imbas

How to Perform Bulk Inserts with ON DUPLICATE KEY UPDATE in MySQL?

Penjelasan terperinci tentang sisipan kumpulan MySQL dan KEMASKINI KUNCI DUA

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.

MySQL 8.0.19 dan ke atas

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>

MySQL 8.0.19 atau ke bawah

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!

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