如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。
例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:
INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1;
UPDATE TABLE SET c=c+1 WHERE a=1;如果行作为新记录被插入,则受影响行的值显示1;如果原有的记录被更新,则受影响行的值显示2。
本文介绍MySQL中INSERT...ON DUPLICATE KEY UPDATE语句的功能和使用方法。当执行INSERT操作时,如果新数据会导致UNIQUE索引或主键重复,则更新已有记录,否则插入新记录。文章还给出了具体的SQL示例。
1496

被折叠的 条评论
为什么被折叠?



