捕获重复键插入异常

时间:2014-11-05 15:53:39

标签: java mysql try-catch

我有一个名为id的唯一主键列的表。有时,当我执行INSERT查询时,我收到错误,因为已使用id值。

我可以使用trycatch来抓住这个特定错误吗?

1 个答案:

答案 0 :(得分:12)

看起来mysql正在为重复的主键丢失1062错误代码。您可以检查sql异常的错误代码:

public static final int MYSQL_DUPLICATE_PK = 1062;

try{
    //code that throws sql exception
} catch(SQLException e){
    if(e.getErrorCode() == MYSQL_DUPLICATE_PK ){
        //duplicate primary key 
    }
}

请注意,此方法不是跨数据库供应商,因为不同的供应商可能有不同的错误代码用于重复PK。