当前使用版本(必填,否则不予处理)
3.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
线上批量插入的时候,某次出现后就一直报唯一索引冲突,重启后就没事
重现步骤(如果有就写完整)
报错信息
Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '001910-2020-07-28' for key 'XXXXXXXX'
Comment From: miemieYaho
无法复现
Comment From: mana392
@miemieYaho 表里两个字段自定义唯一索引,准备大概两百条数据,没有重复的,saveBatch批量插入后,不删除表数据,再次批量插入一次,这时候肯定报唯一索引冲突,然后再把表数据清掉,再次同样的数据插入一次,就会出现唯一索引冲突的异常,一直插入的话,每次报错的索引key还不一样,我目前是100%必现,但是只要重启下服务,就不会报错。
Comment From: yuxiaobin
可以提供一个最小复现demo吗?包括key的配置,db script
Comment From: Kevin-pop
我也遇到了类似情况,设置唯一键,删除部分行后,用saveBatch插入唯一键相同的数据会报唯一键冲突。仅在重启springboot服务才能插入,且进行删除后又会出现该情况。 未在数据库链接url加上rewriteBatchedStatements=true&时上述操作中saveBatch会报DuplicateKeyException但数据可以插入;添加rewriteBatchedStatements=true&后报错同时数据并不会插入
Comment From: qmdx
我也遇到了类似情况,设置唯一键,删除部分行后,用saveBatch插入唯一键相同的数据会报唯一键冲突。仅在重启springboot服务才能插入,且进行删除后又会出现该情况。 未在数据库链接url加上rewriteBatchedStatements=true&时上述操作中saveBatch会报DuplicateKeyException但数据可以插入;添加rewriteBatchedStatements=true&后报错同时数据并不会插入
这个和 mp 没有关系吧很明显是数据库自增出现了问题,建议用分布式 id
Comment From: Kevin-pop
我也遇到了类似情况,设置唯一键,删除部分行后,用saveBatch插入唯一键相同的数据会报唯一键冲突。仅在重启springboot服务才能插入,且进行删除后又会出现该情况。 未在数据库链接url加上rewriteBatchedStatements=true&时上述操作中saveBatch会报DuplicateKeyException但数据可以插入;添加rewriteBatchedStatements=true&后报错同时数据并不会插入
这个和 mp 没有关系吧很明显是数据库自增出现了问题,建议用分布式 id
并没有使用自增,主键使用mp提供的雪花算法id和自己写的雪花算法,DuplicateKeyException出现在另外的一个复合唯一键,我尝试过将已删除的数据作为list,用saveBatch会报错,最后使用list.foreach save(T entity)逐个保存,能保存但也会报错,现在打算写insert ignore语句
Comment From: Carol0
目前遇到类似问题,请问后面怎么解决的啊?
Comment From: Kevin-pop
你好,这是来自QQ邮箱的自动回复邮件。我将在看到邮件后尽快给你回复。---------江俊杰中山大学资讯管理学院The School Of Information Management,Sun Yat-sen UniversityMobile:13431790563