不存在 MySQL資料存在就更新,不存在就新增

2021-10-15 00:08:53 字數 1054 閱讀 7601

做業務系統,經常遇到初始化一些資料,但如果每次都檢查就比較麻煩,下面的方法可以解決類似的問題。

使用on duplicate插入的字段中必須有唯一約束,否則會出現重複值

目前表中沒有唯一約束,執行兩遍插入語句,會出現兩個重複資料,id為49的jerry和id為50的jerry,並沒有達到修改的目的,將name欄位增加唯一約束

alter table `table` add unique(`name`);
表中已經存在名為jerry的資料,再次插入時更新為 jerry,girl, 10

replace into 跟 insert 功能類似,不同點在於:replace into 首先嘗試插入資料到表中, 1. 如果發現表中已經有此行資料(根據主鍵或者唯一索引判斷)則先刪除此行資料,然後插入新的資料。 2. 否則,直接插入新資料。

要注意的是:插入資料的表必須有主鍵或者是唯一索引!否則的話,replace into 會直接插入資料,這將導致表**現重複的資料。

replace into table(name, gender, age)  values ('jerry', 'girl', 10);或replace into table(name, gender, age)  select 'jerry', 'girl', 10;或replace into test set name='jerry', gender='girl', age=10;

mysql,存在就更新,不存在就插入

mysql 當記錄不存在時插入,當記錄存在時更新 網上基本有三種解決方法。第一種 示例一 插入多條記錄 假設有乙個主鍵為 client id 的 clients 表,可以使用下面的語句 insert into clients client id,client name,client type sel...

mysql存在就更新,不存在就新增

insert into newest log operation action,operation,key value,bus key,content,user id,version,module,create time values action,operation,keyvalue,buskey...

Sql server如果存在就更新,不存在就插入

sql不同於mysql那樣,有單獨的乙個命令來執行上述操作,比如在mysql中就可以這樣寫 replace into demo in a,b,c values 123,2,4 在mysql中這是乙個原子操作,如果這條資料存在,就先刪除在插入,不存在就直接插入.要注意的是需要有乙個唯一的主鍵支援,如果...