MySQL: Mengemas kini Berbilang Baris dengan Cekap
Soalan: Adakah pengemaskinian serentak berbilang baris MySQL mungkin?
Jawapan: Sudah tentu! Kenyataan INSERT ... ON DUPLICATE KEY UPDATE
menyediakan penyelesaian yang cekap.
Contoh Ilustrasi:
Katakan kita mempunyai jadual berstruktur seperti berikut dan kita perlu menggunakan beberapa kemas kini:
Name | id | Col1 | Col2 |
---|---|---|---|
Row1 | 1 | 6 | 1 |
Row2 | 2 | 2 | 3 |
Row3 | 3 | 9 | 5 |
Row4 | 4 | 16 | 8 |
Kemas Kini Diperlukan:
UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;
Kemas Kini Disatukan Menggunakan INSERT ... ON DUPLICATE KEY UPDATE
:
Daripada berbilang penyataan UPDATE
individu, kita boleh mencapai hasil yang sama dengan satu pertanyaan yang lebih cekap:
<code class="language-sql">INSERT INTO table (id, Col1, Col2) VALUES (1, 1, 1), (2, 2, 3), (3, 9, 3), (4, 10, 12) ON DUPLICATE KEY UPDATE Col1 = VALUES(Col1), Col2 = VALUES(Col2);</code>
Pertanyaan ini cuba memasukkan baris baharu. Jika baris dengan id
yang ditentukan sudah wujud (disebabkan oleh kunci utama atau indeks unik pada id
), klausa ON DUPLICATE KEY UPDATE
berkuat kuasa, mengemas kini nilai Col1
dan Col2
berdasarkan nilai yang disediakan dalam klausa VALUES()
. Kaedah ini meningkatkan prestasi dengan ketara berbanding dengan melaksanakan beberapa pernyataan UPDATE
individu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Berbilang Baris MySQL Secara serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!