Java 捕获重复密钥插入异常
我有一个带有唯一主键列的表,名为Java 捕获重复密钥插入异常,java,mysql,try-catch,Java,Mysql,Try Catch,我有一个带有唯一主键列的表,名为id。有时,当我执行INSERT查询时,我会收到一个错误,因为id值已被使用 我可以用try和catch捕获这个特定错误吗?看起来mysql正在为重复的主键抛出1062个错误代码。您可以检查sql异常的错误代码: public static final int MYSQL_DUPLICATE_PK = 1062; try{ //code that throws sql exception } catch(SQLException e){ if(e
id
。有时,当我执行INSERT
查询时,我会收到一个错误,因为id
值已被使用
我可以用
try
和catch
捕获这个特定错误吗?看起来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错误代码。当您使用try/catch时,什么不起作用?我做了,但它没有捕获它。您可以显示该代码吗?您想捕获主键存在错误吗?除了@sp00m询问的问题,您在catch块中放了哪个异常类?我以为
SqlException
就是这个类,但不确定。检查特定错误代码的好主意-我不知道这是可能的。为了完整性-在Oracle下,我相信返回的错误代码是1
。