首頁 > 資料庫 > mysql教程 > MySQL的INSERT ... ON DUPLICATE KEY UPDATE如何有效率地處理插入與更新?

MySQL的INSERT ... ON DUPLICATE KEY UPDATE如何有效率地處理插入與更新?

Barbara Streisand
發布: 2025-01-21 11:57:09
原創
960 人瀏覽過

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

MySQL 的高效率更新插入:INSERT ... ON DUPLICATE KEY UPDATE

MySQL 經常面臨需要根據鍵的存在插入新行或更新現有行的情況。這種組合運算稱為 upsert(或合併),可以在 MySQL 中使用單一語句優雅地處理。

重複密鑰更新時利用 INSERT ...

MySQL 的 INSERT ... ON DUPLICATE KEY UPDATE 語句取代了多個查詢,簡化了此過程。它的語法很簡單:

<code class="language-sql">INSERT INTO `table_name`
(`column1`, `column2`, ...)
VALUES
(`value1`, `value2`, ...)
ON DUPLICATE KEY UPDATE
`column1` = `value1`,
`column2` = `value2`,
...</code>
登入後複製

實際應用:增加使用次數

想像一個 usage 表,其中包含 thing_idtimes_usedfirst_time_used 欄位。 目標是如果行存在,則增加給定 times_usedthing_id ;否則,插入新行。

使用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>
登入後複製

此查詢智慧地處理兩種情況:如果 thing_id 4815162342 存在,則 times_used 遞增;否則,將新增具有指定值的新行。 這證明了 MySQL 的 upsert 功能的高效和簡潔。

以上是MySQL的INSERT ... ON DUPLICATE KEY UPDATE如何有效率地處理插入與更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板