MySQL插入數(shù)據(jù)insert?ignore語法重復(fù)數(shù)據(jù)自動忽略
前言
MySQL中插入數(shù)據(jù),如果插入的數(shù)據(jù)在表中已經(jīng)存在(主鍵或者唯一鍵已存在),使用insert ignore 語法可以忽略插入重復(fù)的數(shù)據(jù)。
1、insert ignore 語法
insert ignore into table_name values…
使用insert ignore語法插入數(shù)據(jù)時,如果發(fā)生主鍵或者唯一鍵沖突,則忽略這條插入的數(shù)據(jù)。
滿足以下條件之一:
- 主鍵重復(fù)
- 唯一鍵重復(fù)
2、insert ignore 案例
先看一張表,表名table_name,主鍵id,唯一鍵name,具體表結(jié)構(gòu)及表中數(shù)據(jù)如下:
CREATE TABLE table_name( id int(11) NOT NULL, name varchar(50) DEFAULT NULL, age int(11) DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY uk_name (name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> select * from table_name; +----+------+------+ | id | name | age | +----+------+------+ | 1 | Tom | 20 | +----+------+------+
2.1 主鍵沖突
插入一條記錄,id為1,如果不加 ignore ,報主鍵沖突的錯誤,如下:
mysql> insert into table_name values(1,'Bill', 21); ERROR 1062 (23000): Duplicate entry ‘1' for key ‘PRIMARY'
加上ignore之后,不會報錯,但有一個warning警告,如下:
mysql> insert ignore into table_name values(1,'Bill', 21); Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> show warnings; +———+——+—————————————+ | Level | Code | Message | +———+——+—————————————+ | Warning | 1062 | Duplicate entry ‘1' for key ‘PRIMARY' | +———+——+—————————————+
查詢表,發(fā)現(xiàn)插入的數(shù)據(jù)被忽略了。
mysql> select * from table_name; +—-+——+——+ | id | name | age | +—-+——+——+ | 1 | Tom | 20 | +—-+——+——+
2.2 唯一鍵沖突
同樣,插入唯一鍵沖突的數(shù)據(jù)也會忽略,如下所示:
mysql> insert into table_name values(2,'Tom',21); ERROR 1062 (23000): Duplicate entry ‘Tom' for key ‘uk_name' mysql> insert ignore into table_name values(2,'Tom',21); Query OK, 0 rows affected, 1 warning (0.00 sec)
如果業(yè)務(wù)邏輯需要插入重復(fù)數(shù)據(jù)時自動忽略,不妨試試MySQL 的 insert ignore 功能。
總結(jié)
到此這篇關(guān)于MySQL插入數(shù)據(jù)insert ignore語法重復(fù)數(shù)據(jù)自動忽略的文章就介紹到這了,更多相關(guān)MySQL重復(fù)數(shù)據(jù)自動忽略內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL ERROR 1045 (28000): Access denied for user ''root''@''
這篇文章主要介紹了MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 的原因分解決辦法的相關(guān)資料,需要的朋友可以參考下2016-05-05
MySQL中Innodb的事務(wù)隔離級別和鎖的關(guān)系的講解教程
這篇文章主要介紹了MySQL中Innodb的事務(wù)隔離級別和鎖的關(guān)系講解教程,來自于美團技術(shù)團隊的經(jīng)驗實際經(jīng)驗分享,需要的朋友可以參考下2015-11-11
MySQL性能參數(shù)詳解之Max_connect_errors 使用介紹
這篇文章主要介紹了MySQL性能參數(shù)詳解之Max_connect_errors 使用介紹,需要的朋友可以參考下2016-05-05
MySQL配置文件my.cnf中文詳解附mysql性能優(yōu)化方法分享
Mysql參數(shù)優(yōu)化對于新手來講,是比較難懂的東西,其實這個參數(shù)優(yōu)化,是個很復(fù)雜的東西,對于不同的網(wǎng)站,及其在線量,訪問量,帖子數(shù)量,網(wǎng)絡(luò)情況,以及機器硬件配置都有關(guān)系,優(yōu)化不可能一次性完成,需要不斷的觀察以及調(diào)試,才有可能得到最佳效果。2011-09-09
MySQL 數(shù)據(jù)恢復(fù)的多種方法匯總
日常工作中,總會有因手抖、寫錯條件、寫錯表名、錯連生產(chǎn)庫造成的誤刪庫表和數(shù)據(jù)的事情發(fā)生。但是,如果每次刪庫都跑路的話,怕是再也不好找工作了吧!所以,刪庫跑路不是上上策2021-06-06

