Penyertaan Cekap MySQL: INSERT ... PADA KEMASKINI KUNCI PENDUA
MySQL kerap menghadapi senario yang memerlukan sama ada memasukkan baris baharu atau mengemas kini baris sedia ada berdasarkan kehadiran kunci. Operasi gabungan ini, yang dikenali sebagai upsert (atau gabungan), dikendalikan secara elegan dalam MySQL menggunakan satu pernyataan.
Memanfaatkan INSERT ... PADA KEMASKINI KUNCI DUA
Daripada berbilang pertanyaan, pernyataan INSERT ... ON DUPLICATE KEY UPDATE
MySQL menyelaraskan proses ini. Sintaksnya adalah mudah:
<code class="language-sql">INSERT INTO `table_name` (`column1`, `column2`, ...) VALUES (`value1`, `value2`, ...) ON DUPLICATE KEY UPDATE `column1` = `value1`, `column2` = `value2`, ...</code>
Aplikasi Praktikal: Menambah Kiraan Penggunaan
Bayangkan jadual usage
dengan lajur thing_id
, times_used
dan first_time_used
. Matlamatnya adalah untuk meningkatkan times_used
untuk thing_id
tertentu jika baris itu wujud; jika tidak, masukkan baris baharu.
Tugas ini mudah dicapai menggunakan INSERT ... ON DUPLICATE KEY UPDATE
:
<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>
Pertanyaan ini mengendalikan kedua-dua senario dengan bijak: jika thing_id
4815162342 wujud, times_used
dinaikkan; jika tidak, baris baharu ditambah dengan nilai yang ditentukan. Ini menunjukkan kecekapan dan ringkasan fungsi upsert MySQL.
Atas ialah kandungan terperinci Bagaimanakah MySQL's INSERT ... PADA KEMASKINI KUNCI PENDULIK Mengendalikan Sisipan dan Kemas Kini dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!