MYSQL's INSERT ... PADA pernyataan KEMASKINI KUNCI DUA: Penyisipan dan kemas kini bersyarat dipermudahkan
Apabila menggunakan pangkalan data hubungan seperti MySQL, anda mungkin perlu melaksanakan operasi sisipan atau kemas kini secara bersyarat. Ini berlaku apabila anda perlu mencipta rekod baharu jika ia tidak wujud, atau mengemas kini rekod jika ia sudah wujud. Pendekatan tradisional ialah menggunakan gabungan pertanyaan SELECT dan INSERT atau UPDATE, yang boleh menjadi rumit dan tidak cekap.
Nasib baik, MySQL menyediakan penyelesaian yang lebih elegan: pernyataan INSERT ... ON DUPLICATE KEY UPDATE
. Perintah serba boleh ini membolehkan anda memasukkan baris jika rekod tidak wujud, atau mengemas kini baris jika baris dengan kunci yang sama sudah wujud dalam jadual.
Tatabahasa:
<code class="language-sql">INSERT INTO `table_name` (`column_list`) VALUES (`value_list`) ON DUPLICATE KEY UPDATE `column_name` = `new_value`</code>
Cara ia berfungsi:
ON DUPLICATE KEY UPDATE
menentukan lajur yang harus dikemas kini dengan nilai yang dibekalkan. Contoh:
Pertimbangkan contoh berikut:
<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>
thing_id
mempunyai nilai kunci utama 4815162342 yang tidak wujud, masukkan baris baharu ke dalam jadual usage
menggunakan nilai yang ditentukan. thing_id
mempunyai nilai kunci utama 4815162342 sudah wujud, kemas kini lajur times_used
dengan menambah 1 pada nilai semasanya. Kelebihan:
INSERT ... ON DUPLICATE KEY UPDATE
menyediakan cara yang ringkas dan jelas untuk melaksanakan operasi sisipan dan kemas kini menggunakan satu pertanyaan. Atas ialah kandungan terperinci Bagaimanakah INSERT MySQL ... PADA KEMASKINI KUNCI DUA Memudahkan Sisipan dan Kemas Kini Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!