使用 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中文网其他相关文章!