java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '1ZFMlPTMr24AfCl21-1' for key 'only_insert'
; Duplicate entry '1ZFMlPTMr24AfCl21-1' for key 'only_insert'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '1ZFMlPTMr24AfCl21-1' for key 'only_insert'
看上面的报错,出现这种报错日志,第一个想到的就是查看对应表里的索引,我在工作时,因为是定时任务,每五分钟执行一次方法,结果服务器上的日志,一直在报异常
和公司的领导说,领导说先不管这个,先做比较紧急的事情,于是我就自己加了会班,把问题根除了
控制台上有打印出来的sql,找到对应的表名,直接去数据库里查
我查到的表结果如下(使用的是sqlyog):
有唯一索引,唯一索引的特性就不说了
然后根据这个唯一索引的字段,在表里直接筛选,控制台报错的字段内容是否存在
不用说肯定存在的
这时候就有两个方案
1.在表里直接把唯一索引删除
2.在逻辑判断中先查表再插表
就ok了!