Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 捕获重复密钥插入异常_Java_Mysql_Try Catch - Fatal编程技术网

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