MySQL不插入重覆記錄

2021-07-01 20:39:09 字數 614 閱讀 1015

想插入一條記錄,如果有則不插入,無則插入。表示由乙個自增長id主鍵和其他幾個記錄:

t_version(id,package_name, first,second,third,forth)
原先想用insert   ignore  into,但是發現沒有用,因為它把id也看做不同。

於是我找了網上的另外一種方法  insert … select … where not exist。

insert into t_version(package_name, first,second,third,forth)
select 'com.aaa',0,0,0,0 from dual  

where not exists(select package_name, first,second,third,forth

from t_version where package_name ='com.aaa' and first = 0

and second = 0 and third = 0 and forth = 0);

其中 dual是臨時表,不是物理表,是mysql存在的,不能隨便自己寫。

mysql 重覆記錄

不希望資料表中有重覆記錄的時候我們可以給表新增乙個聯合唯一索引 例如,user表中有user id,user name兩個字段,如果不希望有兩條一摸一樣的的user id和user name,我們可以給user表新增兩個欄位的聯合唯一索引 alter table user add unique in...

MySQL避免插入重覆記錄的方法

mysql在存在主鍵衝突或者唯一鍵衝突的情況下,根據插入策略不同,一般有以下三種避免方法。insert ignore replace into insert on duplicate key update create table t3 id int 11 not null auto increme...

DataTable插入資料,刪除重覆記錄

之前有篇文章簡單講了下批量插入資料的方法,但是沒有考慮到有重複值的情況,sqlbulkcopy也沒有提供相關方法。自己寫了乙個方法,傳入兩個table 目標table和源table 刪除重複行 目標table 源table public int deletereptrows datatable ta...