使用 ON DUPLICATE KEY UPDATE 優化 MySQL 中的批次插入和更新
在批次插入 MySQL 表期間管理唯一值可能很複雜。 ON DUPLICATE KEY UPDATE
子句提供了一個有效的解決方案,可以根據唯一鍵約束同時插入新行和更新現有行。
本指南示範如何在表格(例如「beautiful」)中插入或更新資料列,其中「name」列充當唯一鍵。 提出了兩種方法:
對於 MySQL 8.0.19 及更高版本:
利用行別名進行簡潔更新:
<code class="language-sql">INSERT INTO beautiful (name, age) VALUES ('Helen', 24), ('Katrina', 21), ('Samia', 22), ('Hui Ling', 25), ('Yumie', 29) AS new ON DUPLICATE KEY UPDATE age = new.age -- ... other columns to update ...</code>
對於 8.0.19 之前的 MySQL 版本:
使用 VALUES
關鍵字引用插入的值:
<code class="language-sql">INSERT INTO beautiful (name, age) VALUES ('Helen', 24), ('Katrina', 21), ('Samia', 22), ('Hui Ling', 25), ('Yumie', 29) ON DUPLICATE KEY UPDATE age = VALUES(age), -- ... other columns to update ...</code>
在這兩種方法中,ON DUPLICATE KEY UPDATE
指定在偵測到重複的唯一鍵時要修改哪些列。這確保了資料完整性,同時在單一操作中有效處理插入和更新。
以上是MySQL的ON DUPLICATE KEY UPDATE如何有效率地處理批次插入和更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!