mysql重复插入数据教程(Mysql避免重复插入数据的4种方式)
mysql重复插入数据教程
Mysql避免重复插入数据的4种方式最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下:
这里为了方便演示,我新建了一个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种方式适合字段设置了主键或唯一索引,最后一种方式则没有此限制,只要你熟悉一下使用过程,很快就能掌握的,网上也有相关资料和教程,介绍的非常详细,感兴趣的话,可以搜一下
到此这篇关于Mysql避免重复插入数据的4种方式的文章就介绍到这了,更多相关Mysql避免重复插入数据内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://juejin.cn/post/6923558675277676558
- mysql支持存储表情(MySQL如何插入Emoji表情)
- mysql数据类型和使用方法(MySQL数据类型全解析)
- oracle如何用脚本文件创建表空间(MySQL版oracle下scott用户建表语句实例)
- mysql水平拓展的瓶颈(MySQL令人大跌眼镜的隐式转换)
- mysql如何使用临时表(MySQL中临时表的使用示例)
- phpstudymysql数据库启动不了(phpstudy mysql启动不了的解决方法)
- 如何使java与sqlserver数据库连接(java连接mysql数据库 java连接sql server数据库)
- mysql创建表存在哪里(MySQL的表空间是什么)
- thinkphp5怎么设置默认返回(thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结)
- mysql行级锁使用教程(浅析MySQL的lru链表)
- mysql exists的用法(Mysql exists用法小结)
- mysqlcount使用技巧(MySQL巧用sum、case和when优化统计查询)
- mysql 操作系统时区(mysql时区查看与设置方法)
- mysql意外查不到数据(MySQL 丢失数据的原因及解决)
- mysqlupdate语句(MySQL将select结果执行update的实例教程)
- mac更改mysql密码(Mac下mysql 8.0.22 找回密码的方法)
- 泰国旅游攻略(泰国旅游攻略必去景点)
- 越难春卷(越难春卷皮怎么用)
- 休闲VS新古典 办公家居简约设计(办公家居简约设计)
- 15个新成 园 位置公布 深圳龙岗2022年共建花园建设又有大动作(15个新成园位置公布)
- 记者手记 书记带我去 巡街(记者手记书记带我去)
- 富士胶片集团将向土耳其东南部地震灾民捐赠5000万日元 | 美通社(富士胶片集团将向土耳其东南部地震灾民捐赠5000万日元)
热门推荐
- laravel框架运行找不到视图(解决laravel资源加载路径设置的问题)
- angular封装公共组件(详解Angular组件之生命周期二)
- python画图教程(详解用Python练习画个美队盾牌)
- 织梦dedecms开启付费授权(织梦Dedecms设置伪静态详细方法)
- vuecli项目入门(vue-cli4.5.x快速搭建项目)
- django admin 开发实例(Django给admin添加Action的步骤详解)
- UML对象图的介绍
- html5input标签的默认属性(移动端HTML5 input常见问题小结)
- docker rabbitmq集群部署(Docker部署rabbitmq遇到的两个问题)
- sw动态注解视图干嘛的(Swoole 5将移除自动添加Event::wait特性详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9