实战经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!

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

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

01 insert ignore into

即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据:实战经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!_第1张图片

02 on duplicate key update

即插入数据时,如果数据存在,则执行更新操作,前提条件同上,也是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则执行update更新操作,如果不存在,则直接插入:实战经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!_第2张图片

03 replace into

即插入数据时,如果数据存在,则删除再插入,前提条件同上,插入的数据字段需要设置主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则先删除旧数据,然后再插入,如果不存在,则直接插入:实战经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!_第3张图片

04 insert if not exists

即insert into … select … where not exist … ,这种方式适合于插入的数据字段没有设置主键或唯一索引,当插入一条数据时,首先判断MySQL数据库中是否存在这条数据,如果不存在,则正常插入,如果存在,则忽略:实战经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!_第4张图片目前,就分享这4种MySQL处理重复数据的方式吧,前3种方式适合字段设置了主键或唯一索引,最后一种方式则没有此限制,只要你熟悉一下使用过程,很快就能掌握的,网上也有相关资料和教程,介绍的非常详细,感兴趣的话,可以搜一下。

最后小编准备了几十套阿里、头条、腾讯和美团等公司2020年金三银四的面试题,把技术点整理成了视频+文档(总计20G,实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

这份资料尤其适合:

  1. 没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的。
  2. 具有一定工作经验的,但面对目前流行的技术不知从何下手,需要快速提升核心竞争力的人群。
  3. 在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以报名。
  4. 想了解“一线互联网公司”最新招聘需求/技术要求,对比找出自身的长处和弱点所在,评估自己在现有市场上的竞争力如何;
  5. 做了几年Java开发,但还没形成系统的Java知识体系,缺乏清晰的提升方向和学习路径的程序员。

相信它会给大家带来很多收获。(更全的内容和资料,在文末获取)

直击面试现场:内透腾讯Java程序员面试10个问题,拿走不谢

直击面试现场:内透腾讯Java程序员面试10个问题,拿走不谢

直击面试现场:内透腾讯Java程序员面试10个问题,拿走不谢

直击面试现场:内透腾讯Java程序员面试10个问题,拿走不谢

戳戳这个链接:免费领取文章资料

你可能感兴趣的:(数据库,mysql,java,编程语言,大数据)