【问题标题】:How often do db specific error codes changedb 特定错误代码多久更改一次
【发布时间】:2016-03-23 23:59:24
【问题描述】:

当数据库返回唯一键冲突异常时,我需要抛出特定异常。为此,我使用 getSQLState() 和 getErrorCode() 来识别何时违反唯一键约束。

我想知道供应商特定的错误代码和 SQL 状态是否以及多久更改一次

如果我使用 sqle.getErrorCode() 和 sqle.getSQLState() 来识别异常类型,我需要多久更改一次代码。

我正在测试的数据库是 Postgres、Oracle 和 MySQL。代码看起来有点像这样

catch (SQLException sqle) {
        if(sqle.getSQLState().equals(someSQLState) && sqle.getErrorCode() == someErrorCode) {
            throw new SomeException(SomeParameters);
        }
    }

【问题讨论】:

  • 您必须询问各个供应商,但唯一明智的答案肯定是“从不”。

标签: java mysql database oracle postgresql


【解决方案1】:

Oracle - 错误代码永远不会改变。对此没有书面保证,但错误代码为thoroughly documented。我从未见过任何更改,当然 Oracle 知道更改错误代码将是灾难性的。

PostgreSQL - 上述答案(针对 Oracle)也适用于 PostgreSQL。下面的语句可以在the documentation找到:

需要知道发生了哪种错误情况的应用程序 通常应该测试错误代码,而不是查看文本 错误信息。错误代码不太可能改变 PostgreSQL 版本,并且也不会因以下原因而更改 错误消息的本地化。

MySQL - ?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 2021-11-07
    • 2018-08-21
    相关资源
    最近更新 更多