我有一个名为id
的唯一主键列的表。有时,当我执行INSERT
查询时,我收到错误,因为已使用id
值。
我可以使用try
和catch
来抓住这个特定错误吗?
答案 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。