jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry for key PRIMARY異常解決辦法

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.第二種方案,可以考慮修改表的主鍵約束(不建議修改原有約束)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章