国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mysql 實(shí)現(xiàn)批量插入對(duì)已存在數(shù)據(jù)忽略或更新

這篇具有很好參考價(jià)值的文章主要介紹了Mysql 實(shí)現(xiàn)批量插入對(duì)已存在數(shù)據(jù)忽略或更新。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Mysql 實(shí)現(xiàn)批量插入對(duì)已存在數(shù)據(jù)忽略/更新

一. 表的準(zhǔn)備

CREATE TABLE `demo` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '主鍵id',
  `name` varchar(10) DEFAULT NULL COMMENT '姓名',
  `age` int DEFAULT NULL COMMENT '年齡',
  PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='demo表';

二. 實(shí)現(xiàn)

2.1 實(shí)現(xiàn)原理

對(duì)已存在的數(shù)據(jù)進(jìn)行忽略/更新,需要唯一索引/主鍵。

唯一索引可為多個(gè)字段的聯(lián)合索引,比如根據(jù)我提供的sql中,我需要``name+age`不重復(fù),則可把這2個(gè)字段聯(lián)合創(chuàng)建為唯一索引

創(chuàng)建聯(lián)合唯一索引的sql

alter table table_name add unique index unique_index_name (field1,field2...);
  • 批量插入對(duì)已存在數(shù)據(jù)忽略

    insert ignore table_name (field1, field2...) values (value1, value2...),(value1, value2...);
    
  • 批量插入對(duì)已存在數(shù)據(jù)更新

    replace into  table_name (field1, field2...) values (value1, value2...),(value1, value2...);
    

筆者這里只舉例第一種情況的demo

對(duì)已存在數(shù)據(jù)更新情況,讀者自行練習(xí)

2.2 批量插入對(duì)已存在數(shù)據(jù)忽略

現(xiàn)在我們把name+age創(chuàng)建聯(lián)合唯一索引

alter table demo add unique index unique_name_age (name,age);

Mysql 實(shí)現(xiàn)批量插入對(duì)已存在數(shù)據(jù)忽略或更新,mysql,數(shù)據(jù)庫(kù)

新增索引后,我們開始批量插入數(shù)據(jù)

這里我們先制造2條數(shù)據(jù),來(lái)判斷我們批量插入是否能對(duì)已存在的數(shù)據(jù)進(jìn)行忽略。

INSERT INTO `demo` (`id`, `name`, `age`) VALUES (1, '張三', 10);
INSERT INTO `demo` (`id`, `name`, `age`) VALUES (2, '李四', 10);

我們開始批量插入,對(duì)已存在數(shù)據(jù)進(jìn)行忽略

insert ignore demo values (null, '張三',10),(null, '小黑',11);

運(yùn)行過(guò)程

Mysql 實(shí)現(xiàn)批量插入對(duì)已存在數(shù)據(jù)忽略或更新,mysql,數(shù)據(jù)庫(kù)

運(yùn)行結(jié)果展示

Mysql 實(shí)現(xiàn)批量插入對(duì)已存在數(shù)據(jù)忽略或更新,mysql,數(shù)據(jù)庫(kù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-551955.html

到了這里,關(guān)于Mysql 實(shí)現(xiàn)批量插入對(duì)已存在數(shù)據(jù)忽略或更新的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Mybatis新增數(shù)據(jù),存在就更新,不存在就添加,Mysql避免重復(fù)插入數(shù)據(jù)的4種方式

    即插入數(shù)據(jù)時(shí),如果數(shù)據(jù)存在,則忽略此次插入,前提條件是插入的數(shù)據(jù)字段設(shè)置了主鍵或唯一索引,測(cè)試SQL語(yǔ)句如下,當(dāng)插入本條數(shù)據(jù)時(shí),MySQL數(shù)據(jù)庫(kù)會(huì)首先檢索已有數(shù)據(jù)(也就是idx_username索引),如果存在,則忽略本次插入,如果不存在,則正常插入數(shù)據(jù)。 即插入數(shù)據(jù)時(shí)

    2024年02月11日
    瀏覽(29)
  • 使用saveOrUpdateBatch實(shí)現(xiàn)批量插入更新數(shù)據(jù)

    saveOrUpdateBatch 是 Hibernate 中的一個(gè)方法,可以用來(lái)批量插入或更新數(shù)據(jù)。這個(gè)方法的參數(shù)是一個(gè) List,里面可以存儲(chǔ)多個(gè)實(shí)體對(duì)象。當(dāng) Hibernate 執(zhí)行這個(gè)方法時(shí),會(huì)檢查每個(gè)實(shí)體對(duì)象是否存在主鍵,如果存在主鍵就執(zhí)行 update 操作,否則執(zhí)行 insert 操作。 使用 saveOrUpdateBatch 的代

    2024年02月11日
    瀏覽(25)
  • MYSQL不存在插入 存在更新的解決方法和對(duì)比

    MYSQL不存在插入 存在更新的解決方法和對(duì)比

    設(shè)置主鍵id自增,name為唯一索引 /句: insert ignore into ,如果插入的數(shù)據(jù)會(huì)導(dǎo)致 UNIQUE索引 或 PRIMARY KEY 發(fā)生沖突/重復(fù),則忽略此次操作/不插入數(shù)據(jù),例: 這里已經(jīng)存在 name=\\\'Jack”的數(shù)據(jù),所以會(huì)忽略新插入的數(shù)據(jù),受影響行數(shù)為 0,表數(shù)據(jù)不變 需要注意 主鍵會(huì)自增 當(dāng)使用

    2024年02月02日
    瀏覽(22)
  • Java8 實(shí)現(xiàn)批量插入和更新,SpringBoot實(shí)現(xiàn)批量插入和更新,Mybatis實(shí)現(xiàn)批量插入和更新

    基于mybatis實(shí)現(xiàn)的批量插入和更新 由于直接執(zhí)行批量所有數(shù)據(jù)可能會(huì)出現(xiàn)長(zhǎng)度超出報(bào)錯(cuò)問(wèn)題,使用如下方式即可解決 原理還是分配執(zhí)行,這里的100就是設(shè)定每次執(zhí)行最大數(shù) 這里使用插入作為例子,也可以使用批量更新 更新的寫法

    2024年02月12日
    瀏覽(31)
  • Springboot Mybatis 不存在插入數(shù)據(jù),存在則更新數(shù)據(jù)

    Springboot Mybatis 不存在插入數(shù)據(jù),存在則更新數(shù)據(jù)

    是不是經(jīng)??吹酱a, 查一下數(shù)據(jù)庫(kù),如果存在數(shù)據(jù),就做更新語(yǔ)句調(diào)用; 如果不存在,就插入。 今天該篇介紹的 是使用? ? ?INSERT INTO ? ? ? ?ON DUPLICATE KEY UPDATE ? ? ? ?來(lái)實(shí)現(xiàn)我們上述的場(chǎng)景, 不需要自己再判斷來(lái)判斷去的。 ON DUPLICATE key update 是根據(jù)主鍵索引或者唯一

    2024年02月13日
    瀏覽(24)
  • JAVA實(shí)現(xiàn)存在更新不存在插入與及多余的進(jìn)行刪除(三)

    這個(gè)版本,主要是迭代重載了下save方法,不廢話,直接上代碼: 具體實(shí)現(xiàn)類對(duì)應(yīng)的重載方法如下: 然后就是頭部加多了 implements ICudDataServiceT, ApplicationContextAware。 通過(guò)這個(gè)ApplicationContextAware獲取到所有bean服務(wù),膚淺地以實(shí)體類拼湊一下服務(wù)名,找到bean服務(wù)就作為這個(gè)調(diào)用的

    2024年02月13日
    瀏覽(46)
  • MySQL如何實(shí)現(xiàn)數(shù)據(jù)批量更新

    最近需要批量更新大量數(shù)據(jù),習(xí)慣了寫sql,所以還是用sql來(lái)實(shí)現(xiàn),下面這篇文章主要給大家總結(jié)介紹了關(guān)于MySQL批量更新的方式,需要的朋友可以參考下 這種場(chǎng)景直接通過(guò)update語(yǔ)句更新即可,如: 1 UPDATE t_sys_user SET ` desc ` = \\\'CaseWhen-0\\\' WHERE id IN (1001,1002,1003); 循環(huán)遍歷逐條更新 這種方

    2024年02月07日
    瀏覽(14)
  • MySQL:插入數(shù)據(jù)insert ignore,重復(fù)數(shù)據(jù)自動(dòng)忽略

    MySQL中插入數(shù)據(jù),如果插入的數(shù)據(jù)在表中已經(jīng)存在(主鍵或者唯一鍵已存在),使用insert ignore 語(yǔ)法可以忽略插入重復(fù)的數(shù)據(jù)。 1、insert ignore 語(yǔ)法 使用insert ignore語(yǔ)法插入數(shù)據(jù)時(shí),如果發(fā)生主鍵或者唯一鍵沖突,則忽略這條插入的數(shù)據(jù)。 滿足以下條件之一: 主鍵重復(fù) 唯一鍵重

    2024年02月12日
    瀏覽(20)
  • Mybatis 中傳入List實(shí)現(xiàn) 批量插入、批量更新、批量刪除

    Mybatis 中傳入List實(shí)現(xiàn) 批量插入、批量更新、批量刪除

    個(gè)人收藏使用 文章來(lái)自Mybatis 中傳入List實(shí)現(xiàn) 批量插入、批量更新、批量刪除 - chelsey3tsf - 博客園 (cnblogs.com) 1. 批量插入 : Mapper層: 對(duì)應(yīng)的mapper.xml: 如果List數(shù)據(jù)量比較大,可以考慮將List分批次插入 2. 批量更新: 批量更新只提供更新單個(gè)字段的,因?yàn)楦露鄠€(gè)字段無(wú)論哪種

    2024年02月11日
    瀏覽(27)
  • 批量插入或更新數(shù)據(jù)(MyBatis-plus框架)

    批量插入或更新數(shù)據(jù)(MyBatis-plus框架)

    目錄 1.場(chǎng)景說(shuō)明 2.DUPLICATE?和REPLACE比較 3.批量插入或者更新(兩種方式) 方式一:mybatis-plus的saveOrUpdateBatch方法 問(wèn)題:如果操作類集成了基礎(chǔ)類,比如封裝了BaseEntity去集成,那么這樣使用會(huì)出問(wèn)題 方式二:on duplicate key (推薦) 4.注意 5.常見問(wèn)題? 插入數(shù)據(jù)時(shí),我們經(jīng)常會(huì)遇到這

    2024年02月04日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包