MySQL数据库避免重复的插入数据

最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下:
这里为了方便演示,我新建了一个user测试表,主要有id,username,sex,address这4个字段,其中主键为id(自增),同时对username字段设置了唯一索引:
01insert ignore into
即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据:
02on duplicate key update
即插入数据时,如果数据存在,则执行更新操作,前提条件同上,也是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则执行update更新操作,如果不存在,则直接插入:
03replace into
即插入数据时,如果数据存在,则删除再插入,前提条件同上,插入的数据字段需要设置主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则先删除旧数据,然后再插入,如果不存在,则直接插入:
04insert if not exists
即insert into … select … where not exist ... ,这种方式适合于插入的数据字段没有设置主键或唯一索引,当插入一条数据时,首先判断MySQL数据库中是否存在这条数据,如果不存在,则正常插入,如果存在,则忽略:
目前,就分享这4种MySQL处理重复数据的方式吧,前3种方式适合字段设置了主键或唯一索引,最后一种方式则没有此限制
-
Strapi 开源且高度可定制的CMS
Strapi 是一个开源且高度可定制的 CMS。传统建网站,内容和页面样式绑得死死的,改起来很麻烦。Strapi 不一样!它只管存储和管理你的文字、图片、视频等内容本身,不限制你怎么把它们显示出来。你
-
MacOS系统安装PhpStudy的详细流程
在macos上安装phpstudy的步骤是:1.下载phpstudy,2.安装phpstudy,3.启动phpstudy。phpstudy是一个集成的开发环境,包含php、mysql、apache等组
-
配置PhpStorm连接MySQL数据库的详细步骤
在phpstorm中配置mysql数据库连接的步骤如下:打开phpstorm,点击"view" -> "tool windows" -> "data
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- 搜狗输入法发布2025年表情包年中盘点:闪光青蛙最抽象
- 微软Edge将迎重要新功能!密码泄露会实时提醒
- WaterCrawl开源爬虫神器碾压传统工具
- SparkShop开源商城系统存在任意文件上传漏洞
- 作业帮云原生降本增效实践之路
- 马斯克:我是Rust粉丝,但我选择C
- 了不起的AI,正在让生活更美好
- BCTF之DEF CON 29 Contest |自动驾驶Adversarial NPC热身赛题已开放!
- AspectJ在Android 中的使用攻略
- 诸子云 | 2020评优:最佳分会候选展示与投票
- 学到了!程序员大神用这招让开发效率直接提升10倍!!
- GeoTrust OV SSL证书为何备受企业青睐