广告
返回顶部
首页 > 资讯 > 数据库 >Mysql:避免重复的插入数据方法汇总
  • 878
分享到

Mysql:避免重复的插入数据方法汇总

mysqlsql数据库 2023-09-10 18:09:54 878人浏览 安东尼
摘要

最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我介绍4种方法: insert ignore intoon duplicate

最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我介绍4种方法:

  1. insert ignore into
  2. on duplicate key update
  3. replace into
  4. insert if not exists

下面我来演示一下:

1 准备工作

我新建了一个users表,其中主键为id(自增),同时对username字段设置了唯一索引:

Create table users(id INT NOT NULL AUTO_INCREMENT,username VARCHAR(15) NOT NULL,address VARCHAR(30),PRIMARY KEY(id),UNIQUE KEY idx_username(username)) engine = InnoDB

1.1 insert ignore into

即插入数据时,如果数据存在,则忽略此次插入,该方法有前提条件:插入的数据字段设置了主键或唯一索引。

测试sql语句如下:

insert ignore into users(username,address) values("handsome","wuhan")

当插入本条数据时,Mysql数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据。

第一次执行如下:

由于数据表中没有数据,插入成功。

查询数据表可以看到该数据:

第二次插入,由于该数据表中已经存在该数据,可以看到,没有插入。

1.2 on duplicate key update

即插入数据时,如果数据存在,则执行更新操作,该方法有前提条件:插入的数据字段设置了主键或唯一索引。

测试SQL语句如下:

insert into users(username,address) values("God","suzhou") on DUPLICATE key update address='suzhou';

当插入本条记录时,mysql数据库会首先检索已有数据(idx_username索引),如果存在,则执行update更新操作,如果不存在,则直接插入。

第一次执行如下:

由于数据表中没有数据,插入成功。

 查询数据表可以看到该数据:

第二次插入,由于该数据表中已经存在该数据,可以看到,没有插入。

1.3 replace into

即插入数据时,如果数据存在,则删除再插入,该方法有前提条件:插入的数据字段需要设置主键或唯一索引。

测试SQL语句如下:

replace into users(username,address) values("xiong","wuxi")

当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则先删除旧数据,然后再插入,如果不存在,则直接插入。

第一次执行如下:

由于数据表中没有数据,插入成功。

 查询数据表可以看到该数据:

 

 

第二次插入,由于该数据表中已经存在该数据,先删除,再插入,可以看到执行结果两条。

 查看发现主键已经变化。

 

1.4 insert if not exists

即insert into … select … where not exist ... ,这种方式适合于插入的数据字段没有设置主键或唯一索引,当插入一条数据时,首先判断MySQL数据库中是否存在这条数据,如果不存在,则正常插入,如果存在,则忽略:

insert into users(username,address) select distinct "peng","chongqing" from users where not exists (select username from users where username="peng")

第一次执行如下:

由于数据表中没有数据,插入成功。

 查询数据库以插入成功

 

第二次插入,由于该数据表中已经存在该数据,可以看到,没有插入。

 

2 总结

以上4种MySQL处理重复数据的方式,前3种方式适合字段设置了主键或唯一索引,最后一种方式则没有此限制。

来源地址:https://blog.csdn.net/u013938578/article/details/128966261

您可能感兴趣的文档:

--结束END--

本文标题: Mysql:避免重复的插入数据方法汇总

本文链接: https://www.lsjlt.com/news/402516.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Mysql:避免重复的插入数据方法汇总
    最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我介绍4种方法: insert ignore intoon duplicate ...
    99+
    2023-09-10
    mysql sql 数据库
  • MySql三种避免重复插入数据的方法
    前言 MySql 在存在主键冲突或唯一键冲突的情况下,根据插入方式,一般有以下三种插入方式避免错误。 insert ignore。 replace into insert on duplica...
    99+
    2022-05-21
    MySQL 插入重复数据 MySQL 避免插入重复数据 MySQL 插入数据
  • 避免 MySQL 插入重复数据的 4 种方式
    最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下: 这里为了方便演示,我新建了一个us...
    99+
    2023-09-20
    mysql 数据库 sql Powered by 金山文档
  • Mysql避免重复插入数据的4种方式
    最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下: 这里为了方便...
    99+
    2022-05-21
    Mysql 重复插入数据 MYSQL避免重复插入
  • MySQL 数据恢复的多种方法汇总
    目录1、前言2、直接恢复2.1 mysqldump 备份全量恢复2.2 xtrabackup 备份全量恢复2.3 基于时间点恢复3、恢复一个表3.1 从 mysqldump 备份恢复一个表3.2 从 xtraback...
    99+
    2022-05-31
    MySQL 数据恢复 MySQL 恢复
  • 防止MySQL重复插入数据的三种方法
    新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 ...
    99+
    2022-05-19
    MySQL 重复插入数据 MySQL 防止重复插入数据
  • MySQL数据库中怎么避免写入重复数据
    MySQL数据库中怎么避免写入重复数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们在 MySQL数据库进行表设...
    99+
    2022-10-18
  • java批量导入避免重复数据的方法是什么
    在Java中批量导入数据时避免重复数据的方法可以有以下几种:1. 使用数据库的唯一约束:在批量导入数据之前,先查询数据库中已存在的数...
    99+
    2023-08-19
    java
  • sql避免重复数据的方法有哪些
    在SQL中,避免重复数据的方法包括: 主键约束:可以在表的定义中指定一个或多个列作为主键。主键列的值必须唯一且非空,这样可以确保...
    99+
    2023-10-22
    sql
  • Mybatis新增数据,存在就更新,不存在就添加,Mysql避免重复插入数据的4种方式
     insert ignore into 即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引)...
    99+
    2023-09-03
    数据库 mysql sql
  • SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
    目录方法1:distinct方法2:group by方法3:窗口函数使用SQL对数据进行提取和分析时,我们经常会遇到数据重复的场景,需要我们对数据进行去重后分析。 以某电商公司的销售报表为例,常见的去重方法我们用到dis...
    99+
    2023-05-05
    sql去除重复数据 sql去重复
  • Excel数据导入Mysql常见问题汇总:如何处理导入过程中的重复数据?
    Excel数据导入Mysql常见问题汇总:如何处理导入过程中的重复数据?在数据处理的过程中,我们常常会遇到Excel数据导入到Mysql数据库的需求。然而,由于数据量庞大,很容易出现重复数据的情况,这就需要我们在导入过程中进行相应的处理。在...
    99+
    2023-10-22
    数据过滤 数据匹配 去重处理
  • MYSQL插入数据时检查字段值是否重复的方法详解
    项目需求 现有一张u_ps的车位信息表,对应每个小区的车位id ps_id自增长,每个车位又对应车位编号num,车位id由自增长,车位编号可以根据自己小区情况手动添加设置,但是不能重...
    99+
    2022-11-12
  • mysql插入多条数据的方法
    这篇文章主要介绍mysql插入多条数据的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql插入多条数据的方法:1、使用“INSERT INTO 表名 字段列表 VALUES...
    99+
    2022-10-18
  • MYSQL无重复插入数据更新语法的示例分析
    MYSQL无重复插入数据更新语法的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 如果你指定了ON DUPL...
    99+
    2022-10-18
  • MYSQL插入数据时检查字段值是否重复的方法是什么
    这篇“MYSQL插入数据时检查字段值是否重复的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MYSQL插入数据时检...
    99+
    2023-06-26
  • mysql查找删除表中重复数据方法总结
    在数据库表里,我们有时候会保存了很多重复的数据,这些重复的数据浪费资源,我们要将其删除掉,应该怎么处理呢?下面来看一下。 先看下我们的表数据,有一些数据是重复的。 要查找重复数据,我们可以使用mysql里...
    99+
    2022-10-18
  • 服务器数据恢复后的回迁方法汇总
    在服务器数据恢复工作中有一个案例值得分享给大家,本次数据恢复中客户服务器中共有2块硬盘,因为硬盘物理故障导致服务器不可用,在我公司进行数据恢复成功,下面要介绍的并非数据恢复过程,而是数据恢复成功后的数据迁移方法。由于客户的服务器原本实用2块...
    99+
    2023-06-03
  • R语言导入导出数据的几种方法汇总
    导出: 对于某一数据集导出文件的方法 导出例子:write.csv(data_1,file = "d:/1111111111.csv") 其中data_1是你的数据集,file是你...
    99+
    2022-11-11
  • MySQL删除重复数据的方法
    这篇文章主要介绍MySQL删除重复数据的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最近在做一个批量数据导入到MySQL数据库的功能,从批量导入就可以知道,这样的数据在插入数据...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作