ceving Asked: 2023-02-24 17:59:44 +0800 CST2023-02-24 17:59:44 +0800 CST 2023-02-24 17:59:44 +0800 CST `SQLSTATE '23000'` 是标准的一部分吗? 772 以下答案使用SQLSTATE '23000'. https://dba.stackexchange.com/a/130121/50410 这是 Postgresql 特有的东西还是 SQL 标准的一部分? postgresql 2 个回答 Voted Best Answer Laurenz Albe 2023-02-24T18:12:14+08:002023-02-24T18:12:14+08:00 SQL 标准定义了这个 SQLSTATE。引用 ISO/IEC 9075-2:2003: 23 状态码 23.1 SQL状态 SQLSTATE 参数中返回的字符串值包含一个 2 个字符的类值,后跟一个 3 个字符的子类值,每个子类值都有一个实现定义的字符集,该字符集具有一个八位字节字符编码形式,并且限于 <digit>s和 <简单的拉丁大写字母>s。表 32“SQLSTATE 类和子类值”指定了每个条件的类值和每个类值的一个或多个子类值。 [...] 表 32 — SQLSTATE 类和子类值 类别 健康)状况 班级 子条件 小类 X 违反完整性约束 23 (没有子类) 000 a_horse_with_no_name 2023-02-24T18:15:25+08:002023-02-24T18:15:25+08:00 引自手册 PostgreSQL 服务器发出的所有消息都分配有五个字符的错误代码,这些代码遵循 SQL 标准的“SQLSTATE”代码约定。 ... 请注意,PostgreSQL 生成的一些错误代码(但不是全部)是由 SQL 标准定义的;一些未被标准定义的条件的额外错误代码是从其他数据库中发明或借用的。 ... 对于每个错误类别,都有一个“标准”错误代码,最后三个字符为 000。 所以000最后所有的代码都是标准错误代码,其中包括23000
SQL 标准定义了这个 SQLSTATE。引用 ISO/IEC 9075-2:2003:
引自手册
所以
000
最后所有的代码都是标准错误代码,其中包括23000