mysql 出现MySQLIntegrityConstraintViolationException异常

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

 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:Duplicate entry ‘xxx‘ for key ‘xxx‘异常解决 **报错:Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ‘xxx’ for key ‘xxx’**异常解决 阅读详情

相关推荐

springboot+mybatis com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常解决方案

## Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '219' for key 'PRIMARY' ### The error may involve com.atguigu.gmall.mana...

smile_foreach的博客 1614

异常MySQL提示SQLIntegrityConstraintViolationException: Duplicate entry ‘71‘ for key ‘PRIMARY‘

例如,如果你的表名为users,并且你想要取消的唯一约束名称为users_email_key,你可以这样做,执行SQL语句后,原先的唯一约束将被取消。将your_table_name替换为你的表名,将unique_constraint_name替换为你要取消的唯一约束的名称。将your_schema和your_table替换为你的实际模式名和表名。可以通过查询数据字典视图pg_constraint来找到约束的名称。因为插入的字段设置了UNI(唯一约束),因此提示了报错。

奶爸的编程之路,也就一周冷个三天 751

正确解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常的有效解决方法

正确解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常的有效解决方法

wbajsjhhhhh的博客 4429

MySQLIntegrityConstraintViolationException异常处理

一、异常现象 操作数据库的时候报出异常MySQLIntegrityConstraintViolationException 错误异常MySQLIntegrityConstraintViolationException的意思是违反了数据库的完整性约束,在表中建立了唯一索引 Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry

YSY02的博客 2万+

MySQLIntegrityConstraintViolationException 是发生了什么

MySQLIntegrityConstraintViolationExceptionMySQL 数据库中的一个异常类,表示违反了数据完整性约束的异常

u011425993的博客 2540

数据库 异常:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException

proportion`) VALUES (?,?,?,?,?,?,?,?,?,?)]; Duplicate entry ‘201906-2-0-1’ for key ‘unique_key’; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplica...

Greahow的博客 5750

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException 异常

MySQL完整性约束破坏异常:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException 在单向多对一关联关系中,如果A 持有 B 的引用(即A是多端,B是一端),也就是A 的外键列指向了B 的主键。那么此时如果先删除B, 再删除A(即先删除一端,再删除A端)。那么就会抛出上述异常。 Caus...

dieyuanjiao9299的博客 581

MySQLIntegrityConstraintViolationException:Column cannot be null(Mysql约束检查异常)

这个错今天在项目出现的,刚开始很奇怪。因为我的数据库中这个字段设置了不为NULL,默认值0。 就算前端传入的值是NULL时应该在mybatis中插入再到数据库会插入0。理论上一点都没错。但是Mysql在执行过程过有个预处理过程这个过程就是检查约束,基本的语法信息。所以这个异常发生在预处理过程。因为我传入的是NULL,而数据库中设置的字段约束为非空。所以报出次异常—》约束检查异常。解决方法的话可以在业务代码中加上默认值的设置。 ...

weixin_42740540的博客 3969

【Java】已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException是Java中使用MySQL数据库时可能会遇到的一个异常。在这个例子中,我们试图插入一个具有已存在主键值和唯一约束字段值的记录,这会导致MySQLIntegrityConstraintViolationException异常。在这个例子中,我们首先检查邮箱是否已被使用,如果未被使用,则插入新记录。由于我们省略了主键字段(假设它是自增的),因此不会发生主键冲突。

屿小夏.的知识博客 1764

已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常的正确解决方法,亲测有效!!!

已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常的正确解决方法,亲测有效!!!

小明的Java问道之路 3224

无法捕获MySQLIntegrityConstraintViolationException never

AI相关视频讲解:Python性能这么差,为什么会在AI中大量使用谁来拯救我的数学?点到为止方为上策无法捕获MySQLIntegrityConstraintViolationException never 在进行数据库操作时,我们经常会遇到一些异常情况,其中包括MySQL数据库中的完整性约束异常。当我们尝试插入或更新数...

weixin_40508496的博客 275

数据库异常com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException

2017-09-13 17:05:03[com.dianju.core.SystemOutPrint]-[INFO] Hibernate: select count(*) from wechat_code where `status`=1 2017-09-13 17:05:03[com.dianju.core.SystemOutPrint]-[INFO] Hibernate: select cou

yanlici1249075710的博客 1万+

MySQL异常: Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException解决方案及原因分析

背景 有这样两张表(commodities和accessory),后者有一个外键(fruitid)指向commodities表中的某个实体,表示accessory中对应的附属品实体依赖于某种水果(比如每种水果都需要一定的包装盒、运费)。具体表结构如下: 如果删除某个commodities实体而不删除与之关联的accessory就会出现脏数据,所以当删除commodities时,需要根据frui...

进击的NULL的博客 8万+

mysql 外键冲突_MySQL外键约束冲突异常:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:...

异常内容Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`book`.`t_order`, CON...

weixin_35962351的博客 1026

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException

MySQLIntegrityConstraintViolationExceptionMySQL完整性约束异常 首先来看完整的报错信息: Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign k...

浮沉 1万+

MySql异常 —— Duplicate entry '1' for key 'PRIMARY'

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ‘1’ for key 'PRIMARY’ 对于英语不好的我还需要百度翻译一下,意思是键“primary”的重复条目“1”,也就是主键重复 在进行数据库保存操作时碰到了这个异常,一开始检查来检查去找不到毛病,最后发现...

驼君的小小博客园 5万+

MySQLIntegrityConstraintViolationException: Column ‘DEAL_FLAG‘ cannot be null

MySQL更新语句错误导致非空约束冲突。问题SQL中将字段分隔符错用为AND(正确应为逗号),导致deal_flag未被赋值而违反非空约束。修正方案:将UPDATE语句中的"AND"改为逗号分隔字段,并确保参数非空。典型错误示例:UPDATE table SET field1=1 AND field2=?(错误),正确应为UPDATE table SET field1=1, field2=?。该错误同时提醒需注意:参数校验、避免全表更新、修改后重新编译等问题。关键记忆点:MySQL多字段

devilnumber的博客 220
上一篇: mysql实现高效率随机查询多条数据
下一篇: linux 环境下查看tomcat端口是否被占用及解决方法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值