我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql 实现批量插入对已存在数据忽略或更新

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql 实现批量插入对已存在数据忽略或更新

Mysql 实现批量插入对已存在数据忽略/更新

文章目录

一. 表的准备

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表';

二. 实现

2.1 实现原理

对已存在的数据进行忽略/更新,需要唯一索引/主键。

唯一索引可为多个字段的联合索引,比如根据我提供的sql中,我需要``name+age`不重复,则可把这2个字段联合创建为唯一索引

创建联合唯一索引的sql

alter table table_name add unique index unique_index_name (field1,field2...);
  • 批量插入对已存在数据忽略

    insert ignore table_name (field1, field2...) values (value1, value2...),(value1, value2...);
  • 批量插入对已存在数据更新

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

笔者这里只举例第一种情况的demo

对已存在数据更新情况,读者自行练习

2.2 批量插入对已存在数据忽略

现在我们把name+age创建联合唯一索引

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1VkErW2f-1689071358754)(Mysql 实现批量插入对已存在数据忽略更新.assets/image-20230711181257677.png)]

新增索引后,我们开始批量插入数据

这里我们先制造2条数据,来判断我们批量插入是否能对已存在的数据进行忽略。

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

我们开始批量插入,对已存在数据进行忽略

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

运行过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hWS5eY6x-1689071358755)(Mysql 实现批量插入对已存在数据忽略更新.assets/image-20230711182243200.png)]

运行结果展示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qDDThnJf-1689071358755)(Mysql 实现批量插入对已存在数据忽略更新.assets/image-20230711182516342.png)]

来源地址:https://blog.csdn.net/zhangHP_123/article/details/131666669

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql 实现批量插入对已存在数据忽略或更新

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

大批量数据分批批量插入或更新(Mybatis+MySQL)

大批量数据分批批量插入或更新 在MySQL数据库的前提下,插入或更新大批量数据。首先批量插入需要考虑到以下几个因素: 数据库一次可以承受多大或者多少条数据的插入批量插入是否会占用Mysql资源太久,影响系统整体使用性能代码中的集合是否会造成
2023-08-30

MySQL存储过程实现表内数据查询结果批量插入

1、场景 为菜单表中所以机构(organization_id唯一标识)课程项目(一级菜单)菜单下新增图书管理子菜单并为所有机构增加该子菜单的绑定关系。具体查询步骤: (1)查询菜单表中有菜单配置的所有机构id; (2)查询相应机构对于的一级菜单 课程项目 的i
MySQL存储过程实现表内数据查询结果批量插入
2022-04-02

编程热搜

目录