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为新值。mysql

 

这样一条语句简化了咱们的开发代码,不然开发代码还要判断表里有没有相应的数据,若是没有那么插入数据、若是有那么执行更新操做。sql

 

注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并非SQL标准语法! 
这个语法和适合用在须要 判断记录是否存在,不存在则插入存在则更新的场景.
并发

 

该sql在高并发环境下会有锁争用的问题,参考下面连接阅读高并发

https://cloud.tencent.com/developer/article/1004900spa

相关文章
相关标签/搜索