SQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'yyyzzz'异常解决

一. 异常现象

在做Java Web项目操作数据库添加数据的时候,突然发现曝出如下图所示异常:

SQLIntegrityConstraintViolationException: Duplicate entry

Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'test1' for key 'UK_sb8bbouer5wak8vyiiy4pf2bx'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at ......

二. 异常原因

java.sql.SQLIntegrityConstraintViolationException:

其实就是违反了数据库的唯一约束条件!也就是插入数据时,具有唯一约束条件的列值重复了。

根据我图中描述信息的展示可知,我的表中"test1"这一列是具有唯一约束的,现在插入列值时数据有重复了。所以务必确认插入数据的主键或者具有唯一性约束的列不要有重复数据!!!

三. 解决办法

  1. 方法一:将具有唯一约束的列,取消唯一性约束;
  2. 方法二:保证插入的数据,与表中已有的数据不重复!