现在的位置: 首页 > 综合 > 正文

[mysql 语法]INSERT … ON DUPLICATE KEY UPDATE

2013年10月04日 ⁄ 综合 ⁄ 共 371字 ⁄ 字号 评论关闭

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

 

 

抱歉!评论已关闭.