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/

随时掌握互联网精彩
- Bitwarden开源的密码管理器
- 22字声明、近400名专家签署、AI教父Hinton与OpenAI CEO领头预警:AI可能灭绝人类!
- 超级CSO研修班 | 张照龙:安全创业,需要观照自心,安乐自在
- 华为汪涛:以创新基础设施,释放数字生产力,携手客户和伙伴迈向智能世界!
- 抖音回应全国上线外卖:仍在试点中;微软发布 ChatGPT 版搜索引擎;中国计算机图形学巨匠齐东旭教授逝世|极客头条
- 金山回应“WPS 会删除用户本地文件”;腾讯游戏:未成年人暑假只能周五六日打游戏;iOS 16公测版发布|极客头条
- 惊喜不断,福利多多,云盲盒的快乐等你来开!
- 《LLVM与代码混淆技术》
- 移动办公时代,我们究竟需要一台怎样的电脑?
- 在Z|东呈、木链高薪招贤;10年+安全经验求职IT/安全总监
- 高通公司推出高通Snapdragon Sound,重新定义无线音频体验
- 春节大爆料:男女“云约会”骗钱、与滴滴大数据斗智、拉票信息致孩子被拐……