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為新值。

 

這樣一條語句簡化了我們的開發代碼,否則開發代碼還要判斷表里有沒有相應的數據,如果沒有那么插入數據、如果有那么執行更新操作。

 

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

 

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM