Rumah >pangkalan data >tutorial mysql >Bagaimanakah MySQL's INSERT ... PADA KEMASKINI KUNCI PENDULIK Mengendalikan Sisipan dan Kemas Kini dengan Cekap?

Bagaimanakah MySQL's INSERT ... PADA KEMASKINI KUNCI PENDULIK Mengendalikan Sisipan dan Kemas Kini dengan Cekap?

Barbara Streisand
Barbara Streisandasal
2025-01-21 11:57:091007semak imbas

How Can MySQL's INSERT ... ON DUPLICATE KEY UPDATE Efficiently Handle Inserts and Updates?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn