在看代碼的過程中碰到了這一用法,不太理解,google了一下。它的意義其實是如果在insert語句末尾制定了“on duplicate key update”語句的話,則當插入行會導致一個unique索引或者primary key中出現重復值,則執行update中的語句,否則才插入新行。
例如,如果列a被定義為unique,并且值為1,則下列語句有同樣的效果,也就是說一旦出入的記錄中存在a=1的情況,直接更新c = c + 1,而不執行c = 3的操作。
- insert into table(a, b, c) values (1, 2, 3) on duplicate key update c = c + 1;
- update table set c = c + 1 where a = 1;
另外值得一提的是,這個語句知識mysql中,而標準sql語句中是沒有的。
參考文章: http://www.ludou.org/insert-into-on-duplicate-key-update-for-multiple-items.html
/***我相信,一旦你能將某個問題寫清楚,你一定弄懂了。所以我要努力地寫出來。 && It does not matter how slow as long as you do not stop***/
|
新聞熱點
疑難解答