SQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'yyyzzz'異常解決
一. 異常現象
在做Java Web項目操作數據庫添加數據的時候,突然發現曝出如下圖所示異常:
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"這一列是具有唯一約束的,現在插入列值時數據有重複了。所以務必確認插入數據的主鍵或者具有唯一性約束的列不要有重複數據!!!
三. 解決辦法
-
方法一:將具有唯一約束的列,取消唯一性約束;
-
方法二:保證插入的數據,與表中已有的數據不重複!