mysql解决重复主键 ON DUPLICATE KEY UPDATE

解决问题: 插入操作的主键重复问题。

解决方案: 利用ON DUPLICATE KEY UPDATE对数据库中已有的重复数据进行修改操作。

注意点:

  • 只能进行修改操作
  • 必须进行修改操作
  • 对一次插入操作中的所有重复记录都会造成修改

记忆易错点

插入前后对于重复的主键记录始终只有一条,修改的是原数据库中的那条记录

example

  1. 建表
    在这里插入图片描述
  2. 手动插入测试数据
    mysql解决重复主键 ON DUPLICATE KEY UPDATE_第1张图片
  3. 书写SQL语句与执行结果展示
    a. 正常的插入语句
    INSERT INTO test(name,created) VALUES(‘赵六’,‘2020-01-01’)
    mysql解决重复主键 ON DUPLICATE KEY UPDATE_第2张图片
    b. 插入重复主键记录
    INSERT INTO test(id,name,created) VALUES(1,‘钱七’,‘2020-01-01’)
    在这里插入图片描述
    可以看到上方SQL执行明显报错了,主键重复错误
    c. 使用ON DUPLICATE KEY UPDATE
    INSERT INTO test(id,name,created) VALUES(1,‘钱七’,‘2020-01-01’) ON DUPLICATE KEY UPDATE name = ‘博博’
    在这里插入图片描述
    mysql解决重复主键 ON DUPLICATE KEY UPDATE_第3张图片
    看一看到插入的重复主键记录失败,数据库原来id为1的那条记录的name值发生了改变
    d. 最后再看一下同时多个id重复的情况
    INSERT INTO test(id,name,created) VALUES(1,‘徐八’,‘2020-01-01’),(2,‘孙九’,‘2020-03-03’) ON DUPLICATE KEY UPDATE name = ‘覆盖’
    mysql解决重复主键 ON DUPLICATE KEY UPDATE_第4张图片

你可能感兴趣的:(数据库,mybatis)