您的位置:首页 > 数据库 > MySQL

[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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: