MySQL replace into (insert into 的增強版)


在使用SQL語句進行數據表插入insert操作時,如果表中定義了主鍵,插入具有相同主鍵的記錄會報錯:

   Error Code: 1062. Duplicate entry 'XXXXX' for key 'PRIMARY'(主鍵沖突)

  這樣我們只好檢查主鍵是不是存在,若存在則更新,若不存在則插入。或者寫SQL流程控制語句(if...else...)

 

Mysql提供了replace into跟insert into的功能一樣。不同點在於:

  如果發現表中已經有此行數據(根據主鍵或者唯一索引判斷)則先刪除此行數據,然后插入新的數據。否則,直接插入新數據。

  注意:因為要根據主鍵或者是唯一索引判斷是否有重復數據,所以操作的表必須要有主鍵或者是唯一索引。否則的話,replace into 會直接插入數據。

 

Mysql replace into用法有三種,最簡單的一種用法就是直接將 "insert" 關鍵字替換為"replace"就可以啦。

  insert into t(... , ...) values(... , ...)

   修改為

  replace into t(... , ...) values(... , ...)


免責聲明!

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



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