mysql插入重复数据的三种处理方式(DUPLICATE、IGNORE、REPLACE )

这篇具有很好参考价值的文章主要介绍了mysql插入重复数据的三种处理方式(DUPLICATE、IGNORE、REPLACE )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、插入或者更新  DUPLICATE

INSERT   ...  ON  DUPLICATE   KEY  UPDATE   ”,
它是在插入操作时,如果数据出现重复,则更新重复数据的值 
示例:

INSERT INTO myf_deal_data ( `ID`, `PTNAME`, `PTDATA`, `OPERTIME`, `REPORTTIME` )
VALUES
    ( 111, '858_Ua', '219.1000', '2022-04-01 00:45:00', '2022-06-28 10:04:52' ) 
ON DUPLICATE KEY UPDATE PTDATA = '219.9000',REPORTTIME = NOW()


示例解释:

这条语句意味着,如果myf_deal_data表,存在id为111的数据,那么就将更新PTDATA 和REPORTTIME 的值

需要权限:insert、update

影响行数:2行

注意:多线程并发会导致死锁的可能。

2、插入或者丢弃  IGNORE  

“  INSERT  IGNORE  INTO ..  VALUES   ”的用法
是在插入操作时,如果数据出现重复,则忽略这个操作,不会报错,但也不会插入重复的数据
示例:

INSERT IGNORE INTO myf_deal_data ( `ID`, `PTNAME`, `PTDATA`, `OPERTIME`, `REPORTTIME` )
VALUES
    ( 111, '858_Ua', '219.1000', '2022-04-01 00:45:00', '2022-06-28 10:04:52' ) 


示例解释:
向myf_deal_data 表插入数据,如果myf_deal_data 表的主键字段( ID 字段)已经存在 111这个值,那么这条语句就会被忽略,不会插入数据,也不会报错。
需要权限:insert

影响行数:0行

3、插入或者替换  REPLACE 

“  REPLACE INTO ...  VALUES   ”的用法
是在插入操作时,如果不存在插入数据,如果数据出现重复,则更新数据(与DUPLICATE不同,需要的是insert、delete权限,是先删除后新增
示例:

REPLACE INTO  myf_deal_data ( `ID`, `PTNAME`, `PTDATA`, `OPERTIME`, `REPORTTIME` )
VALUES
    ( 58261907, '858_Ua', '219.1000', '2022-04-01 00:45:00', '2022-06-28 10:04:52' ) 


示例解释:
向myf_deal_data 表插入数据,如果myf_deal_data 表的主键字段( ID 字段)已经存在 111这个值,那么这条语句就会被忽略,不会插入数据,也不会报错。
需要权限:insert、delete

影响行数:2行   (先删除,再新增)文章来源地址https://www.toymoban.com/news/detail-687718.html

到了这里,关于mysql插入重复数据的三种处理方式(DUPLICATE、IGNORE、REPLACE )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【大数据系列之MySQL】(七):MySQL查看版本号的三种方式

    第一种方式就是通过命令行,输入指令: 方式二和方式一是同样的道理,只不过可以将命令进行简写: 第三种方式是通过登录MySQL的服务端,通过指令:

    2024年04月15日
    浏览(48)
  • Mybatis新增数据,存在就更新,不存在就添加,Mysql避免重复插入数据的4种方式

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

    2024年02月11日
    浏览(43)
  • MySQL大数据表处理的三种方案,查询效率嘎嘎高

    场景 当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题 数据的插入,查询时长较长 后续业务需求的扩展 在表中新增字段 影响较大 表中的数据并不是所有的都为有效数据 需求只查询时间区间内的 评估表数据体量 我们可

    2024年02月13日
    浏览(51)
  • 估计很多人不知道:在PowerPoint中插入图片的三种方式用法和解析

    你知道吗?在我们用PowerPoint制作PPT的时候,往幻灯片中插入本地图片时,除了默认的“插入”按钮,点击插入按钮右边的箭头,还有链接到文件、插入和链接两个选项。 那么,在PowerPoint中插入图片是的插入、链接到文件、插入和链接这三个选项分别是什么含义?有什么作用

    2024年02月04日
    浏览(39)
  • Spring的三种异常处理方式

            异常分为编译时异常和运行时异常,编译时异常我们 try-cache 进行捕获,捕获后自行处理,而运行时异常是不 可预期的,就需要规范编码来避免,在SpringMVC 中,不管是编译异常还是运行时异常,都可以最终由 SpringMVC提供的异常处理器进行统一处理,这样就避免了

    2024年02月12日
    浏览(41)
  • 数据库批量插入数据的三种方法

    测试环境:SpringBoot项目+MybatisPlus框架+MySQL数据库+Lombok 方法一: for循环插入(单条) (总耗时:n分钟,每次都要获取连接Connection、释放连接和关闭资源等操作,比较耗时,这里就没测了) 方法二: 批量插入saveBatch (4~7秒,这里用到了MybatisPLus的saveBatch批量插入方法,实际

    2024年02月14日
    浏览(51)
  • SpringMVC 的三种异常处理方式详解

    目录 1. 什么是异常 2. 为什么要全局异常处理 3. SpringMVC异常分类 4. 异常处理思路 5. 三种异常处理方式示例 ① 配置 SimpleMappingExceptionResolver 处理器 ② 实现 HandlerExceptionResolver 接口 ③ 使用@ControllerAdvice+@ExceptionHandler实现全局异常 6. 响应封装类         见字如意,就是编码

    2024年02月08日
    浏览(39)
  • 数据库中的字段名与实体类中的属性名不能一一对应时的三种处理方式

    当查询结果的列名和java对象的属性名对应不上时需要采用下列方式进行处理:         第一种方式:在查询语句中使用\\\"as\\\" 给列起别名         第二种方式:使用resultMap结果映射         第三种方式:开启驼峰命名自动映射(配置settings) 实体类Car: packa

    2024年02月09日
    浏览(41)
  • Mac下启动mysql的三种方式

    在系统设置里面找到mysql从而启动mysql 使用下面的命令来进行启动mysql sudo sudo /usr/local/mysql-5.7.31-macos10.14-x86_64/support-files/mysql.server 如果你进行了全局配置,可以使用以下命令 sudo mysql.server start 第一个password是电脑密码 第二个password事mysql密码

    2024年02月11日
    浏览(48)
  • 【工作记录】mysql中实现分组统计的三种方式

    前言 实际工作中对范围分组统计的需求还是相对普遍的,本文记录下在mysql中通过函数和sql完成分组统计的实现过程。 数据及期望 比如我们获取到了豆瓣电影top250,现在想知道各个分数段的电影总数. 表数据如下: 期望结果: 实现方案 主要思路是根据score的范围设置别名,然

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包