mysql使用replace和on duplicate key update區別

        實際業務使用中,有時候會遇到插入數據庫,可是若是某個屬性(好比:主鍵)存在,就作更新。一般有兩種方式:一、replace into  二、on duplicate key update數據庫

可是在使用過程當中,發現了二者的區別,整理以下:code

replace into :首先嚐試插入數據到表中, 1. 若是發現表中已經有此行數據(根據主鍵或者惟一索引判斷)則先刪除此行數據,而後插入新的數據。 2. 不然,直接插入新數據。索引

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

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

       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,不然會把其餘列原有的值給刪除掉了。top

相關文章
相關標籤/搜索