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

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

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

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

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í)忽略唯一索引沖突的錯(cuò)誤,而不會中斷插入過程。

如果插入的數(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ù)時(shí),則執(zhí)行update語句,如update后為無用語句,

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

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

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

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)文章

  • 一文搞懂什么是MySQL前綴索引

    一文搞懂什么是MySQL前綴索引

    所謂前綴索引,說白了就是對文本的前幾個(gè)字符建立索引,有點(diǎn)類似于?Oracle?中對字段使用?Left?函數(shù)來建立函數(shù)索引,只不過?MySQL?的這個(gè)前綴索引在查詢時(shí)是內(nèi)部自動完成匹配的。本文將通過示例詳細(xì)聊聊前綴索引,需要的可以參考一下
    2022-09-09
  • MySQL數(shù)據(jù)庫基本SQL語句教程之高級操作

    MySQL數(shù)據(jù)庫基本SQL語句教程之高級操作

    對MySQL數(shù)據(jù)庫的查詢,除了基本的查詢外,有時(shí)候需要對查詢的結(jié)果集進(jìn)行處理,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫基本SQL語句教程之高級操作的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • linux下改良版本mysqldump來備份MYSQL數(shù)據(jù)庫

    linux下改良版本mysqldump來備份MYSQL數(shù)據(jù)庫

    我的備份腳本都是在凌晨執(zhí)行的,經(jīng)常在慢查詢?nèi)罩纠锩婵吹竭@樣的信息:select * from table1; 之前一直很納悶,最后才了解到原來是MYSQLDUMP搞的鬼。
    2008-07-07
  • 淺析刪除表的幾種方法(delete、drop、truncate)

    淺析刪除表的幾種方法(delete、drop、truncate)

    這篇文章主要介紹了刪除表的幾種方法,需要的朋友可以參考下
    2014-05-05
  • MySQL多表數(shù)據(jù)記錄查詢詳解

    MySQL多表數(shù)據(jù)記錄查詢詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL多表數(shù)據(jù)記錄查詢操作,具有一定的實(shí)用性,感興趣的小伙伴們可以參考一下
    2016-08-08
  • MySQL數(shù)據(jù)庫設(shè)置遠(yuǎn)程訪問權(quán)限方法小結(jié)

    MySQL數(shù)據(jù)庫設(shè)置遠(yuǎn)程訪問權(quán)限方法小結(jié)

    很多情況下我們需要遠(yuǎn)程連接mysql數(shù)據(jù)庫,那么就可以參考下面的權(quán)限設(shè)置
    2013-10-10
  • MySQL數(shù)據(jù)庫社招必考題:索引如何優(yōu)化WHERE子句?

    MySQL數(shù)據(jù)庫社招必考題:索引如何優(yōu)化WHERE子句?

    本文系統(tǒng)分享WHERE子句優(yōu)化方法,從定位低效SQL、分析原因到逐步改進(jìn),涵蓋索引、寫法調(diào)整及數(shù)據(jù)訪問優(yōu)化,通過實(shí)戰(zhàn)案例說明常見錯(cuò)誤及解決策略,強(qiáng)調(diào)優(yōu)化需邏輯而非僅建索引,助力面試準(zhǔn)備
    2025-09-09
  • Mysql全局ID生成方法

    Mysql全局ID生成方法

    本文給大家介紹mysql全局id生成方法,涉及到mysql全局id相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • MYSQL GROUP BY用法詳解

    MYSQL GROUP BY用法詳解

    這篇文章主要為大家詳細(xì)介紹了MYSQL GROUP BY用法,具有一定的實(shí)用性和參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • MySQL5.7 windows二進(jìn)制安裝教程

    MySQL5.7 windows二進(jìn)制安裝教程

    這篇文章主要為大家詳細(xì)介紹了MySQL5.7 windows二進(jìn)制安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

朝阳市| 绥中县| 辰溪县| 龙南县| 招远市| 彝良县| 梅河口市| 霍邱县| 辽宁省| 鹤庆县| 博爱县| 本溪| 石景山区| 新余市| 徐汇区| 望城县| 施秉县| 涪陵区| 电白县| 太和县| 青龙| 九江县| 太保市| 松滋市| 光山县| 仲巴县| 饶河县| 康马县| 高清| 逊克县| 西华县| 荣成市| 越西县| 普定县| 工布江达县| 桃园县| 乌兰浩特市| 大英县| 玉溪市| 聂荣县| 新郑市|