使用“INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE”
当使用 MySQL 执行插入操作时,它如果发生唯一键冲突,可以更新现有行。这可以使用“INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE”语法来实现。
在给定的查询中,旨在从临时表('tmp')插入行进入“lee”表。如果“lee”中已存在具有相同唯一键(在本例中为“id”)的行,则查询应将特定列更新为“tmp”表中的值。
UPDATE 的语法此场景中的子句如下:
ON DUPLICATE KEY UPDATE column1=SELECT_column1, column2=SELECT_column2, ...
这里,“column1”指的是“lee”表中的列,“SELECT_column1”指的是引用 SELECT 子句中的相应列。通过指定这些对,MySQL 确定使用 SELECT 中的新值更新哪些列。
对于提供的查询,UPDATE 子句将如下所示:
ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, inadur=t.inadur, inadist=t.inadist, smlct=t.smlct, smldur=t.smldur, smldist=t.smldist, larct=t.larct, lardur=t.lardur, lardist=t.lardist, emptyct=t.emptydur, emptydur=t.emptydur
这可确保当遇到重复键时,“entct”、“inact”、“inadur”等列将使用临时表中相应列的值进行更新。
以上是如何在插入期间使用 MySQL 的 ON DUPLICATE KEY UPDATE 更新现有行?的详细内容。更多信息请关注PHP中文网其他相关文章!