mysql一条语句实现插入或更新的操作
INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=VALUES(c);
或者
INSERT INTO table (id,a,b,c) select id,a,b,c from xxx ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c)
上面的mysql的一条语句实现了往表里插入数据,如果对应的主键上(假设主键是a)已经有数据了那么执行更新操作,更新字段c为新值。
这样一条语句简化了我们的开发代码,否则开发代码还要判断表里有没有相应的数据,如果没有那么插入数据、如果有那么执行更新操作。
注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法!
这个语法和适合用在需要 判断记录是否存在,不存在则插入存在则更新的场景.
该sql在高并发环境下会有锁争用的问题,参考下面链接阅读
https://cloud.tencent.com/developer/article/1004900
posted on 2017-04-28 10:26 dongruiha 阅读(18285) 评论(0) 编辑 收藏 举报