MySQL Upsert操作:存在則更新,不存在則插入
問題:
在MySQL中,是否存在一種高效的方法來執行「Upsert」操作,即如果一行不存在則插入新行,如果存在則更新現有行?
答案:
是的,MySQL 提供了 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>
說明:
INSERT INTO
子句嘗試插入具有指定值的新行。 ON DUPLICATE KEY UPDATE
子句定義瞭如果發生唯一鍵衝突(即,如果已經存在具有相同 thing_id
的行)時應該發生的情況。 times_used
欄位加 1 來更新現有行。 優勢:
以上是如何在 MySQL 中高效率執行更新插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!