mysql 出现MySQLIntegrityConstraintViolationException异常

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

MySQLIntegrityConstraintViolationException: key 'PRIMARY'重复条目'140',主键重复了,我这里的注解是(id)重复主键id是140.

出现问题的原因:

    之前没有数据库读写分离,是没有问题的,最近修改为数据库读写分离后,本地测试数据还没有统一,两个数据库的这张表的数据不统一,导致读数据获取的主键id,和添加数据时添加的主键id冲突。发现插数据的那张表主键id没有设置自增,每次添加数据时需要先获取最大的主键id,加1后,再去添加数据,所以问题就出现在此。

 

解决办法:

将主键设置为自增。

   ( 如果数据库是读写分离的,则数据要做到统一)

出现此问题的其他解决原因:

1.检查是否表结构的问题(一般很少这个可能性)

2.检查在添加数据的时候,是否带有主键ID,ID是否不为空.

如果你是因为使用了mybatis,再添加数据的时候报的这个错误时:

检查添加的方法sql语句,在插入数据后返回ID的地方,下面这里:

 <selectKey resultType="java.lang.Long" order="BEFORE" keyProperty="productId">
          SELECT LAST_INSERT_ID()
 </selectKey>

把BEFORE改成AFTER;

 <selectKey resultType="java.lang.Long" order="AFTER" keyProperty="productId">
          SELECT LAST_INSERT_ID()
 </selectKey>
问题解决

MySQLIntegrityConstraintViolationException是一个MySQL数据库异常,表示违反了完整性约束。引用中的错误消息显示了一个示例,其中'140'是一个重复的主键值,导致了这个异常。该异常通常在删除或插入数据时出现,当存在外键关系并且违反了完整性约束时,会导致删除或插入操作失败。提到解决这个异常的方法。一种常见的解决方法是确保删除或插入的数据满足相关表的完整性约束,例如删除操作需要先解除相关表的外键关系。提供了更多关于MySQLIntegrityConstraintViolationException异常的参考信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mysql 出现MySQLIntegrityConstraintViolationException异常](https://blog.csdn.net/hyp187/article/details/102937368)[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_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MySQLIntegrityConstraintViolationException](https://blog.csdn.net/qq_38133320/article/details/102785822)[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_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [MySQLIntegrityConstraintViolationException:Column cannot be null](https://blog.csdn.net/m0_65886290/article/details/124183908)[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_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值