本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE;接下来就分别看看这三种方式的处理办法。

IGNORE

使用ignore当插入的值遇到主键(PRIMARY KEY)或者唯一键(UNIQUE KEY)重复时自动忽略重复的记录行,不影响后面的记录行的插入,

创建测试表

?

正常的插入如果插入的记录中存在键重复会报错,整个语句都会执行失败

使用IGNORE如果插入的记录中存在重复值会忽略重复值的该记录行,不影响其它行的插入。

REPLACE

使用replace当插入的记录遇到主键或者唯一键重复时先删除表中重复的记录行再插入。

?

创建测试表

?

从输出的信息可以看到是4行受影响,说明它是先插入了(1,1)然后又删除了(1,1)

?

当插入的记录遇到主键或者唯一键重复时,会执行后面定义的UPDATE操作。

相当于先执行Insert 操作,再根据主键或者唯一键执行update操作。

创建测试表

?

第一条语句相当于执行:

?

第二条语句相当于执行:

?

在ON DUPLICATE KEY UPDATE后面使用VALUES指的就是插入的记录的值,而不使用VALUES指的是表的自身值。

注意: ON DUPLICATE KEY UPDATE的后面执行的UPDATE更新的记录是WHERE重复的主键或者唯一键的ID,这点非常重要。

比如下面这种情况:

?

它是唯一键NAME1重复但是主键不重复,执行的语句是这样的:

?

不要认为会插入主键ID=2的记录进去。

总结

上面的三种处理重复值的方法都支持标准的INSERT语法,包括INSERT INTO...VALUES, INSERT INTO ....SET ,INSERT INTO..... SELECT。

关于MySQL 处理插入过程中的主键唯一键重复值的解决方法小编就给大家介绍这么多,希望对大家有所帮助!

mysql 导入主键冲突_MySQL 处理插入过程中的主键唯一键重复值的解决方法相关推荐

  1. springboot 主键重复导致数据重复_程序员:MySQL处理插入过程中主键或唯一键重复值的解决办法

    向MySQL插入数据有时会遇到主键重复的场景,原来的做法是先在程序代码中SELECT一下,判断是否存在指定主键或唯一键的数据,如果没有则插入,有的话则执行UPDATE操作,或另外一套逻辑,这种方法是不 ...

  2. MySQL处理插入过程中主键或唯一键重复值的解决办法

    向MySQL插入数据有时会遇到主键重复的场景,原来的做法是先在程序代码中SELECT一下,判断是否存在指定主键或唯一键的数据,如果没有则插入,有的话则执行UPDATE操作,或另外一套逻辑,这种方法是不 ...

  3. MySQL 处理插入重主键唯一键重复值办法

    本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE:接下来就分别看看这三种方式的处理办法. IG ...

  4. mysql表中的中文是乱码_mysql插入表中的中文显示为乱码或问号的解决方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 今天在做ssh的博客项目时发现mysql数据库中的中文显示为问号,网上查阅了很多资料,都不是很全,所以我总结一下,供大家参考和自己复习. 1.我的 ...

  5. mysql导入100000000需要多久_MYSQL批量插入千万级数据只需百秒

    1.首先建立一张student表函数 create table(id int(20) NOT NULL AUTO_INCREMENT,sex char(1),name varchar(20));spa ...

  6. 文献阅读-ICRA2020-一种在穿刺机器人插入过程中基于激光多普勒血流仪检测组织边界的新型传感方法

    文章序号.所属单元及链接:2943-Surgical Robotics Steerable CathetersNeedles 一作所属单位:Imperial College London 读后体会:论 ...

  7. MySQL主键唯一键重复插入解决方法

    我们插入数据的时候,有可能碰到重复数据插入的问题,但是这些数据又是不被允许有重复值: CREATE TABLE stuInfo ( id INT NOT NULL COMMENT '序号', name ...

  8. 重新安装mysql5.7.21_linux 安装mysql 5.7.21详解以及安装过程中所遇问题解决

    在安装过程中所遇到的问题有: 1.my-default.cnf文件找不到 2.mysql启动报错 3.mysql临时密码无法登录 安装环境centos 6.0 下载数据库: [root@CLangua ...

  9. 【Java】导入项目时,出现The project cannot be built until build path errors are resolved错误解决方法

    [Java]导入项目时,出现The project cannot be built until build path errors are resolved错误解决方法 参考文章: (1)[Java] ...

最新文章

  1. 小红书做直播的背后,隐藏了什么秘密?
  2. 程序员应知——团队精神(转)
  3. ActiveMQ跑起来
  4. 机器学习笔记:triplet loss
  5. 《研磨设计模式》chap14 迭代器模式(2)算工资举例
  6. Tomcat发布网页的方法记录
  7. jenkins配置以cygwin环境的子节点
  8. 深入信号和槽(Signals and Slots in Depth)
  9. C++11新特性之智能指针
  10. 我的世界java村民繁殖_我的世界:Java19w08a更新,村民加强守卫,小狐狸背叛
  11. Storm精华问答 | Storm的配置需要注意什么问题?
  12. WebFlux响应式编程基础之 6 webflux客户端声明式restclient框架开发讲解
  13. 多个python文件打包成exe_pyinstaller打包python文件成exe(原理.安装.问题)
  14. 零基础开始学 Web 前端开发,有什么建议吗?
  15. 卷积神经网络对咖啡病虫害识别和分割(分割+分类,病害严重程度详细)
  16. 数据仓库与数据挖掘 阶段考试复习题
  17. Dell Inspiron 5576 显卡驱动程序无法安装或不认识显卡
  18. uniapp 使用支付宝扫码插件
  19. 思科pt静态路由的简单配置
  20. 诚意干货:如何神不知鬼不觉破解你家路由器 | 硬创公开课

热门文章

  1. Tag recommendaion... 论文中的小例子,使用HOSVD算法推荐
  2. React  学习第二天 2018-07-21
  3. 岗位推荐 | 微软AI Research Group招聘自然语言处理AI算法研究实习生
  4. 专题解读 |「知识图谱」领域近期值得读的 6 篇顶会论文
  5. Python Matplotlib基本用法
  6. HDU 1853 HDU 3488【有向环最小权值覆盖问题 】最小费用最大流
  7. 06 | 哨兵机制: 主库挂了, 如何不间断服务
  8. oracle clob 次数,解决Oracle clob字段数据过大问题
  9. linux算术表达式求值数据结构,数据结构:算数表达式求值演示
  10. SpirngBoot整合MyBatis出现“SAXParseException”和“文件提前结束”异常解决办法