Duplicate entry 'xxx' for key 'xxx'

时间:2022-10-24 10:20:32

插入数据的时候 报错,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的索引添加时,默认不区分大小写。