Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '9-2' for key 'PRIMARY'異常解決辦法
一. 異常現象
我在往數據庫中插入數據的時候,mysql中曝出如下異常。
Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '9-2' for key 'PRIMARY'
### The error may exist in com/yyg/openapi/mapper/RoleMapper.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: insert into role_menu (ROLE_ID, MENU_ID) values (?, ?)
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '9-2' for key 'PRIMARY'
; Duplicate entry '9-2' for key 'PRIMARY'; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '9-2' for key 'PRIMARY'] with root cause
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '9-2' for key 'PRIMARY'
......
......
二. 異常原因
通過查詢異常信息,可以提取出主要的異常信息如下:
Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '9-2' for key 'PRIMARY'......
仔細分析一下,原來就是是因爲插入的新數據,與表的主鍵唯一約束產生了衝突,也就是新數據的主鍵在表中已經存在了,不能重複插入同樣的數據!
三. 解決辦法
1.第一種方案,將表中原有的相關記錄刪除,再重新插入即可;
2.第二種方案,可以考慮修改表的主鍵約束(不建議修改原有約束)。