在MySQL数据库中,这4种方式可以避免重复的插入数据!
点击上方“方志朋”,选择“设为星标”
回复”666“获取新整理的面试文章
作者:小小猿爱嘻嘻
wukong.com/question/6749061190594330891/
最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下:
这里为了方便演示,我新建了一个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种方式适合字段设置了主键或唯一索引,最后一种方式则没有此限制,只要你熟悉一下使用过程,很快就能掌握的,网上也有相关资料和教程,介绍的非常详细,感兴趣的话,可以搜一下。
热门内容:推荐个 Java 开源商城项目,这个是真的好!记一次订单号重复的事故,快看看你的 uuid 在并发下还正确吗?
为什么程序员都不喜欢使用 switch ,而是大量的 if……else if ?
终于有人把 Docker 讲清楚了,别再说不会 Docker 了!最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)
在MySQL数据库中,这4种方式可以避免重复的插入数据!相关推荐
- bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...
最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...
- 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...
java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...
- php 数组存入mysql_PHP将数组存入数据库中的四种方式
1.implode()和explode()方式 2.print_r()和自定义函数方式 3.serialize()和unserialize()方式 4.json_encode()和json_decod ...
- PHP将数组存入数据库中的四种方式
最近突然遇到了一个问题,如何用PHP将数组存入到数据库中,经过自己的多方查找和研究,总结了以下四种方法: 1.implode()和explode()方式 2.print_r()和自定义函数方式 3.s ...
- MySQL数据库优化的几种方式(笔面试必问)
作者平台: | CSDN:blog.csdn.net/qq_4115394- | 掘金:juejin.cn/user/651387- | 知乎:www.zhihu.com/people/1024- | ...
- MySql数据库备份的几种方式
活动地址:CSDN21天学习挑战赛 mysqldump工具备份 备份整个数据库 $> mysqldump -u root -h host -p dbname > backdb.sql 备份 ...
- python将数据存入mysql数据库中_python3 两种方法将数据存入mysql数据库
方法一:(数据量小的时候推荐使用这种) 第一步:pip install mysqlclient 这里我没有报错 也许你可能会报错Read timed out 此时不要慌,这是因为你的网络问题,你使 ...
- python操作数据库的几种方法_python对mysql数据库操作的三种不同方式
原标题:python对mysql数据库操作的三种不同方式 |转载自:博客园 |原文链接:http://www.cnblogs.com/mryrs/p/6951008.html 先要说一下,在这个暑期如 ...
- mysql复制表的几种方式
mysql复制表的几种方式 所描述的方法还请实际测试一下再使用. 1.复制表结构及数据到新表 CREATE TABLE 新表SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都 ...
最新文章
- 计算机网络总结:第五章 链路层
- 连接sql server数据库的两种方式
- LeetCode算法题-K-diff Pairs in an Array(Java实现)
- 正则表达式(Java版整理)
- php上操作redis,PHP操作redis
- python生成4位验证码_Python 生成4位验证码图片
- leveldb 文档 impl.html 阅读记录
- 从Maven远程存储库下载
- input type = submit 提交方式和用js的form.submit()有什么区别?
- SQL语句学习1——SHOW命令
- armbian格式化磁盘命令,甜糖格式化磁盘
- laravel 下载图片跨域问题
- 机房服务器维修合同,机房维护合同模板.doc
- 项目选题报告答辩总结
- 干货!量子技术入门、进阶、行业专家观点、最新资讯!1000篇好文帮你揭开量子技术神秘面纱!...
- 协议栈数据包快速转发的实现(2)
- 二分图匹配-匈牙利算法, 最小路径覆盖
- 视频直播,音频直播,m3u8
- 把Form转换成TXT格式的文件
- C4D 入门笔记(一)