Rumah >pangkalan data >tutorial mysql >Bagaimanakah MySQL ON DUPLICATE KEY UPDATE Boleh Mengendalikan Sisipan Serentak dan Kemas Kini Berbilang Baris?
MySQL ON DUPLICATE KEY UPDATE
: Mengendalikan Sisipan dan Kemas Kini Berbilang Baris Serentak dengan Cekap
Apabila memasukkan berbilang baris ke dalam jadual MySQL, situasi timbul di mana anda perlu menyemak kehadiran kunci unik (berbeza daripada kunci utama) sebelum mengemas kini rekod sedia ada. Klausa ON DUPLICATE KEY UPDATE
menyediakan penyelesaian yang elegan.
MySQL 8.0.19 dan versi yang lebih baru menawarkan sintaks yang dipertingkat menggunakan alias untuk baris yang disisipkan. Ini membolehkan kemas kini yang lebih bersih dan boleh dibaca:
<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 MySQL sebelum 8.0.19 (perhatikan bahawa kaedah VALUES
ditamatkan pada 8.0.20), pendekatan berikut diperlukan:
<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>
Dalam kedua-dua contoh, jika konflik kunci unik timbul semasa sisipan, baris yang terjejas dikemas kini dengan nilai yang disediakan. Jika tidak, baris baharu ditambahkan.
Adalah penting untuk diingat bahawa VALUES
dalam ON DUPLICATE KEY UPDATE
tidak merujuk nilai baris sedia ada, sebaliknya nilai lajur yang sepadan daripada percubaan sisipan baris baharu.
Atas ialah kandungan terperinci Bagaimanakah MySQL ON DUPLICATE KEY UPDATE Boleh Mengendalikan Sisipan Serentak dan Kemas Kini Berbilang Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!