码迷,mamicode.com
首页 > 其他好文 > 详细

Duplicate entry 'xxx' for key 'xxx'

时间:2018-09-18 19:01:02      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:nbsp   bug   exce   const   except   导致   根据   sql   错误   

插入数据的时候 报错,Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ‘xxx-xxx-xxx-xxx-xxx‘ for key ‘AA‘

1、这段信息给出的是索引重复,就去找数据是否相同,但是并不相同。

2、又由于‘xxx-xxx-xxx-xxx-xxx‘部分只显示60个字符,怀疑是数据被截取,变换参数值尝试,还是报错。

3、再次对批量的数据逐条debug,最后定位到出错的那条数据,发现是组合索引中的一个参数,有大小写两条数据,在插入后一条时报错。

4、对数据库中的该字段,根据业务需要,改成支持大小写的。

5、mysql的唯一索引或组合索引中某个字段,设置区分大小写。具体操作: 字段设定里面有一个【二进制(Binary)】的选项,需要区分大小写的字段勾上就可以了。

 

踩坑点:

1、堆栈打印的错误信息 索引重复只打印部分,不打印全部,这个导致排查耗时。

2、mysql的索引添加时,默认不区分大小写。

Duplicate entry 'xxx' for key 'xxx'

标签:nbsp   bug   exce   const   except   导致   根据   sql   错误   

原文地址:https://www.cnblogs.com/boomoom/p/9670302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!