Mysql避免重复插入数据的4种方式

 更新时间:2021年02月01日 09:59:07   作者:xcbeyond  
这篇文章主要介绍了Mysql避免重复插入数据的4种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

这里为了方便演示,我新建了一个user测试表,主要有id,username,sex,address这4个字段,其中主键为id(自增),同时对username字段设置了唯一索引:

01 insert ignore into

即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据:

02 on duplicate key update

即插入数据时,如果数据存在,则执行更新操作,前提条件同上,也是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则执行update更新操作,如果不存在,则直接插入:

03 replace into

即插入数据时,如果数据存在,则删除再插入,前提条件同上,插入的数据字段需要设置主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则先删除旧数据,然后再插入,如果不存在,则直接插入:

04 insert if not exists

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

目前,就分享这4种MySQL处理重复数据的方式吧,前3种方式适合字段设置了主键或唯一索引,最后一种方式则没有此限制,只要你熟悉一下使用过程,很快就能掌握的,网上也有相关资料和教程,介绍的非常详细,感兴趣的话,可以搜一下

到此这篇关于Mysql避免重复插入数据的4种方式的文章就介绍到这了,更多相关Mysql避免重复插入数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 比较详细的MySQL字段类型说明

    比较详细的MySQL字段类型说明

    MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。
    2008-08-08
  • mysql中使用replace替换某字段的部分内容

    mysql中使用replace替换某字段的部分内容

    这篇文章主要介绍了mysql中使用replace替换某字段的部分内容的方法,需要的朋友可以参考下
    2014-11-11
  • 发现mysql一个用法,比较有用

    发现mysql一个用法,比较有用

    mysql下用select实现列运算
    2008-02-02
  • MySQL 使用索引扫描进行排序

    MySQL 使用索引扫描进行排序

    mysql可以使用同一个索引既满足排序,又用于查找行,因此,如果可能,设计索引时应该尽可能地同时满足这两种任务,这样是最好的。本文将介绍如何利用索引来进行排序
    2021-06-06
  • MySQL实现字段或字符串拼接的三种方式总结

    MySQL实现字段或字符串拼接的三种方式总结

    这篇文章主要为大家详细介绍了MySQL中实现字段或字符串拼接的三种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-01-01
  • 防止服务器宕机时MySQL数据丢失的几种方案

    防止服务器宕机时MySQL数据丢失的几种方案

    这篇文章主要介绍了防止服务器宕机时MySQL数据丢失的几种方案,结合实践介绍了Replication和Monitor以及Failover这三个项目的应用,需要的朋友可以参考下
    2015-06-06
  • mysql installer web community 5.7.21.0.msi安装图文教程

    mysql installer web community 5.7.21.0.msi安装图文教程

    这篇文章主要为大家详细介绍了mysql installer web community 5.7.21.0.msi,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • 实例详解mysql子查询

    实例详解mysql子查询

    这篇文章主要介绍了mysql子查询的相关资料,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09
  • mysql 8.0.18 安装配置方法图文教程(linux)

    mysql 8.0.18 安装配置方法图文教程(linux)

    这篇文章主要介绍了linux下mysql 8.0.18 安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Ubuntu下MySQL及工具安装配置详解

    Ubuntu下MySQL及工具安装配置详解

    这篇文章主要为大家详细介绍了Ubuntu下MySQL及工具安装配置方法,感兴趣的小伙伴们可以参考一下
    2016-06-06

最新评论