[mysql 语法]INSERT ... ON DUPLICATE KEY UPDATE
2013-06-05 16:00
477 查看
INSERT ... ON DUPLICATE KEY UPDATE
这个语法常常使用在 表里面有唯一约束的键,或者主键的表里面。
比如 tb(a,b,c) 其中 a是有唯一键约束的。
insert into tb (a,b,c) values (1,2,3) on duplicate key update b=b+1,c=c+1;
上面这个语句有2层意思:
1.当表tb里面 a 含有1 的时候,相当于
update tb set b=b+1,c=c+1 where a =1;
2.当表tb里面a不含有1的时候
insert into tb (a,b,c) values (1,2,3);
要是a和b都有唯一约束:
那当 a 含有1 或者 b含有2 都相当于 (只要有一个键违反了唯一约束,整个语句都变成update)
update tb set b=b+1,c=c+1 where a =1 or b =2;
其余情况就直接insert
这个语法常常使用在 表里面有唯一约束的键,或者主键的表里面。
比如 tb(a,b,c) 其中 a是有唯一键约束的。
insert into tb (a,b,c) values (1,2,3) on duplicate key update b=b+1,c=c+1;
上面这个语句有2层意思:
1.当表tb里面 a 含有1 的时候,相当于
update tb set b=b+1,c=c+1 where a =1;
2.当表tb里面a不含有1的时候
insert into tb (a,b,c) values (1,2,3);
要是a和b都有唯一约束:
那当 a 含有1 或者 b含有2 都相当于 (只要有一个键违反了唯一约束,整个语句都变成update)
update tb set b=b+1,c=c+1 where a =1 or b =2;
其余情况就直接insert
相关文章推荐
- mysql insert语法注意事项(ON DUPLICATE KEY UPDATE )
- mysql insert语法注意事项(ON DUPLICATE KEY UPDATE )
- MySQL中insert ignore into, on duplicate key update,replace into,insert … select … where not exist的一些用法总结
- mysql insert的几点操作(DELAYED 、IGNORE、ON DUPLICATE KEY UPDATE )
- mysql中insert...on duplicate key update...使用
- mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )
- Mysql中“Insert into xxx on duplicate key update”问题
- mysql中"ON DUPLICATE KEY UPDATE"语法遇到的问题
- MySQL中的insert ignore into, replace into, insert select, on duplicate key update的用法小结
- mysql "ON DUPLICATE KEY UPDATE" 语法
- mysql "ON DUPLICATE KEY UPDATE" 语法的分析
- 深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析
- mysql "ON DUPLICATE KEY UPDATE" 语法
- 深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析
- MySQL的Replace into 与Insert into on duplicate key update真正的不同之处
- mysql "ON DUPLICATE KEY UPDATE" 语法
- MySql中Insert into xxx on duplicate key update
- mysql → INSERT ... ON DUPLICATE KEY UPDATE
- 转-mysql insert的几点操作(DELAYED 、IGNORE、ON DUPLICATE KEY UPDATE )
- (转)ON DUPLICATE KEY UPDATE --mysql的一个有趣语法