天天看點

[mysql 文法]INSERT ... ON DUPLICATE KEY UPDATE

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

繼續閱讀