Kendalian Upsert MySQL: kemas kini jika wujud, masukkan jika tidak wujud
Soalan:
Dalam MySQL, adakah terdapat cara yang cekap untuk melaksanakan operasi "Upsert", iaitu memasukkan baris baharu jika ia tidak wujud, dan mengemas kini baris sedia ada jika ia wujud?
Jawapan:
Ya, MySQL menyediakan sintaks INSERT ... ON DUPLICATE KEY UPDATE
untuk mencapai fungsi ini. Berikut ialah contoh:
Contoh:
<code class="language-sql">INSERT INTO `usage` (`thing_id`, `times_used`, `first_time_used`) VALUES (4815162342, 1, NOW()) ON DUPLICATE KEY UPDATE `times_used` = `times_used` + 1</code>
Arahan:
INSERT INTO
cuba memasukkan baris baharu dengan nilai yang ditentukan. ON DUPLICATE KEY UPDATE
mentakrifkan perkara yang sepatutnya berlaku jika konflik kunci unik berlaku (iaitu jika baris dengan thing_id
yang sama sudah wujud). times_used
. Kelebihan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Upserts dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!