mysql"ON DUPLICATE KEY UPDATE"语法简析[MySQL防范]
本文“mysql"ON DUPLICATE KEY UPDATE"语法简析[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
假如在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会招致在一个UNIQUE索引或PRIMARY KEY中呈现反复值,则在呈现反复值的行履行UPDATE;
假如不会招致唯一值列反复的问题,则插入新行. www.110hack.com
比方,假如列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:
1
INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1;
2
UPDATE TABLE SET c=c+1 WHERE a=1;
假如行作为新记录被插入,则受影响行的值显示1;假如原有的记录被更新,则受影响行的值显示2.
这个语法还可以这样用:
假如INSERT多行记录(假定 a 为主键或 a 是一个 UNIQUE索引列):
1
1.INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=c+1;
履行后, c 的值会变成 4 (第二条与第一条反复, c 在原值上+1).
1 www.110hack.com
2.INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=VALUES(c);
履行后, c 的值会变成 7 (第二条与第一条反复, c 在直接取反复的值7).
注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并非SQL尺度语法!
这个语法和适实用在需求 判断记录能否存在,不存在则插入存在则更新的场景.
可以参评语法:
http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#insert
作者 雪人
以上是“mysql"ON DUPLICATE KEY UPDATE"语法简析[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |