MySql插入数据时错误Duplicate entry '131' for key 'PRIMARY'

今天在进行开发的过程中,遇到MySQL数据库插入数据时抛出异常:

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '131' for key 'PRIMARY'


左上角的红色部分是我已经插入正确的数据,这个错误的出现感觉是随机的。

顺便讲一下我这个错误出现的过程:我通过一个循环操作来向数据库中的某张表进行数据的插入,数据层我使用的是MyBatis,我们都知道MyBatis自动生成的xxxMapper.java类中有很多基本的操作数据库的方法,我就是调用了里面的insert方法。然后就出现了上面的异常。

从错误信息中我们可以知道该错误的出现是因为插入数据时主键已经在数据库表中已经存在。但是,我就纳闷了,我MySql数据库中该表的主键设置是自动增长的,难不成没有增长,但是,它又有部分的数据插入成功,这就更让人纳闷了。因此,我通过查找MyBatis的相关资料,找到了解决方案。

解决的方法:找到MyBatis系统自动生成的insert方法。并将红色部分去掉。


因为我们设置的是主键自增长,所以在插入的时候不需要插入主键字段了并且不需要查找主键最大值。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在MySQL插入数据遇到"Duplicate entry '0' for key 'PRIMARY'"的错误,这表示你尝试插入数据的主键值与已存在的记录中的主键值冲突。要解决这个问题,你可以采取以下几个解决方案: 1. 确保插入数据的主键值是唯一的,不与已存在的记录的主键值重复。 2. 使用REPLACE INTO语句替代INSERT INTO语句。REPLACE INTO语句在插入数据,如果存在主键冲突,则会先删除已存在的记录再插入新的记录,从而解决了主键冲突的问题。例如,你可以使用以下语句进行插入操作: REPLACE INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); 这将在插入数据自动处理主键冲突。 3. 使用INSERT INTO ... ON DUPLICATE KEY UPDATE语句。这个语句在插入数据,如果存在主键冲突,则会执行更新操作而不是插入操作。你可以指定要更新的列和对应的新值。例如: INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...) ON DUPLICATE KEY UPDATE column1=VALUES(column1); 这将在插入数据检查主键冲突,如果存在冲突则更新column1列的值为新的值。 总结起来,你可以通过确保插入数据主键值的唯一性,使用REPLACE INTO语句或INSERT INTO ... ON DUPLICATE KEY UPDATE语句来解决插入数据的主键冲突问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [mysql插入数据Duplicate entry ‘‘ for keyPRIMARY‘的解决方案](https://blog.csdn.net/oykotxuyang/article/details/119346306)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [mysql #1062 –Duplicate entry ‘1’ for keyPRIMARY’](https://download.csdn.net/download/weixin_38545117/13691897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值