mysql一條語句實現插入或更新的操做

 

INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=VALUES(c);

或者

INSERT INTO table (id,a,b,c) select id,a,b,c from xxx ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c)

 

 上面的mysql的一條語句實現了往表裏插入數據,若是對應的主鍵上(假設主鍵是a)已經有數據了那麼執行更新操做,更新字段c爲新值。mysql

 

這樣一條語句簡化了咱們的開發代碼,不然開發代碼還要判斷表裏有沒有相應的數據,若是沒有那麼插入數據、若是有那麼執行更新操做。sql

 

注意:ON DUPLICATE KEY UPDATE只是MySQL的特有語法,並非SQL標準語法! 
這個語法和適合用在須要 判斷記錄是否存在,不存在則插入存在則更新的場景.
併發

 

該sql在高併發環境下會有鎖爭用的問題,參考下面連接閱讀高併發

https://cloud.tencent.com/developer/article/1004900spa

相關文章
相關標籤/搜索