MySQL 的 INSERT ... ON DUPLICATE KEY UPDATE 語句:簡化條件插入與更新
在使用 MySQL 等關聯式資料庫時,您可能需要有條件地執行插入或更新操作。當您需要在記錄不存在時建立新記錄,或記錄已存在時更新記錄時,就會發生這種情況。傳統方法是結合 SELECT 和 INSERT 或 UPDATE 查詢,這可能會變得複雜且效率低。
幸運的是,MySQL 提供了一個更優雅的解決方案:INSERT ... ON DUPLICATE KEY UPDATE
語句。此多功能命令可讓您在記錄不存在時插入一行,或在表中已存在具有相同鍵的行時更新該行。
文法:
<code class="language-sql">INSERT INTO `table_name` (`column_list`) VALUES (`value_list`) ON DUPLICATE KEY UPDATE `column_name` = `new_value`</code>
工作原理:
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 的主鍵值不存在,則使用指定的值將新行插入 usage
表中。 thing_id
為 4815162342 的主鍵值已存在,則透過將其目前值加 1 來更新 times_used
欄位。 優勢:
INSERT ... ON DUPLICATE KEY UPDATE
提供了一種簡潔明了的方法,可以使用單一查詢執行插入和更新操作。 以上是MySQL 的 INSERT ... ON DUPLICATE KEY UPDATE 如何簡化條件插入和更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!