mysql使用replace和on duplicate key update區別


        實際業務使用中,有時候會遇到插入數據庫,但是如果某個屬性(比如:主鍵)存在,就做更新。通常有兩種方式:1、replace into  2、on duplicate key update

但是在使用過程中,發現了兩者的區別,整理如下:

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

                                         replace into tbl_name(col_name, ...) values(...)

on duplicate key update:當發生重復值的時候,就執行UPDATE后面的代碼

       insert into dh_dead_letter(id,topic_code,content) values('2','topic_code','topic_code') on duplicate key update topic_code = values(topic_code), content = values(content);

 

       實際業務場景: 當數據交換任務,進行數據庫插入數據時,如果配置的映射列,不是所有映射列,則要使用on duplicate key update只更新或插入部分列的數據,不能使用replace into,否則會把其他列原有的值給刪除掉了。

     


免責聲明!

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



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