最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL批量插入唯一索引沖突的幾種避免辦法

 更新時間:2024年02月21日 10:47:18   作者:MinggeQingchun  
我們在進(jìn)行大批量的數(shù)據(jù)插入時,遇到唯一索引沖突是經(jīng)常的事,本文主要介紹了MySQL批量插入唯一索引沖突的幾種避免辦法,具有一定的參考價值,感興趣的可以了解一下

我們在進(jìn)行大批量的數(shù)據(jù)插入時,遇到唯一索引沖突是經(jīng)常的事,報錯如下:

java.util.concurrent.ExecutionException: org.springframework.dao.DuplicateKeyException: 
### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '1122-zhangsan' for key 'idx_no_name'

在MySQL中有4種方法可以避免唯一索引沖突

(一)導(dǎo)入差異數(shù)據(jù),忽略重復(fù)數(shù)據(jù),IGNORE INTO的使用

(二)導(dǎo)入并覆蓋重復(fù)數(shù)據(jù),REPLACE INTO 的使用

(三)導(dǎo)入保留重復(fù)數(shù)據(jù)未指定字段,INSERT INTO ON DUPLICATE KEY UPDATE 的使用

表 test1

1、insert ignore into

INSERTIGNORE語句可以在插入數(shù)據(jù)時忽略唯一索引沖突的錯誤,而不會中斷插入過程。

如果插入的數(shù)據(jù)存在唯一索引沖突,那么MySQL將忽略該行的插入操作,繼續(xù)插入下—行數(shù)據(jù)。

INSERT IGNORE INTO table_name (column1, column2, ...)
VALUES (valuel, value2, ...),...

2、replace into

REPLACE語句可以用于插入新行或替換已存在的行。

如果存在primary or unique相同的記錄,則先刪除掉。再插入新記錄

如果插入的數(shù)據(jù)存在唯一索引沖突,那么MySQL將刪除已存在的行,并插入新行。

這種方法就是不管原來有沒有相同的記錄,都會先刪除掉然后再插入。這意味著插入操作總是成功的,但可能導(dǎo)致數(shù)據(jù)丟失

REPLACE INTO table_name (columnl, column2, ...)
VALUES (valuel, value2, ...),...

3、on duplicate key update

當(dāng)primary或者unique重復(fù)時,則執(zhí)行update語句,如update后為無用語句,

如id=id,則同1功能相同,但錯誤不會被忽略掉。例如,為了實(shí)現(xiàn)name重復(fù)的數(shù)據(jù)插入不報錯,可使用一下語句:

INTO table_name (columnl, column2, ...)
VALUES (valuel, value2, ...),...
ON duplicate KEY UPDATE id = id

這種方法有個前提條件,就是,需要插入的約束,需要是主鍵或者唯一約束。

4、insert … select … where not exist

根據(jù)select的條件判斷是否插入,可以不光通過primary 和unique來判斷,也可通過其它條件。例如:

INSERT INTO books (name) SELECT 'MySQL Manual' 
FROM dual 
WHERE NOT EXISTS (SELECT id FROM books WHERE id = 1)

這種方法貌似寫這很繁瑣

INSERT INTO order (orderId ) VALUES
SELECT '500002' FROM DUAL WHERE NOT EXISTS (
SELECT * FROM order WHERE orderId='500002'
)

到此這篇關(guān)于MySQL批量插入唯一索引沖突的幾種避免辦法的文章就介紹到這了,更多相關(guān)MySQL避免唯一索引沖突內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

嘉定区| 苍南县| 晋城| 青冈县| 东阳市| 明光市| 施甸县| 贵溪市| 宁国市| 呼和浩特市| 岗巴县| 泰州市| 项城市| 灵寿县| 垫江县| 满洲里市| 怀远县| 宣威市| 罗山县| 扶沟县| 蓬莱市| 苗栗县| 平和县| 信阳市| 济阳县| 哈密市| 敦化市| 云安县| 汤阴县| 浪卡子县| 湟中县| 南宫市| 隆子县| 镇沅| 乐东| 贞丰县| 贺兰县| 河池市| 南宁市| 根河市| 金阳县|