↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4
历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.

附录 A. PostgreSQL 错误代码

PostgreSQL 服务器发出的所有消息都被分配了五字符错误代码,遵循 SQL 标准对“SQLSTATE”代码的约定。需要知道发生了哪一种错误条件的应用,通常应测试错误代码,而不是查看错误消息的文本内容。这些错误代码在不同 PostgreSQL 版本之间更不容易发生变化,也不会因错误消息的本地化而改变。

根据标准,错误代码的前两个字符表示错误的类别,后三个字符表示该类别中的特定条件。因此,即使应用无法识别某个具体错误代码,仍可能从错误类别推断出应采取的操作。

表 A.1列出了 PostgreSQL 7.4.30 中定义的所有错误代码。(其中有些当前实际上并未使用,不过它们由 SQL 标准定义。)错误类别也一并显示。对于每个错误类别,都有一个“标准”错误代码,其最后三个字符为000。该代码只用于那些属于该类别但没有分配更具体代码的错误情况。

表 A.1. PostgreSQL Error Codes

Error CodeMeaning
Class 00成功完成
00000SUCCESSFUL COMPLETION
Class 01警告
01000WARNING
0100CWARNING DYNAMIC RESULT SETS RETURNED
01008WARNING IMPLICIT ZERO BIT PADDING
01003WARNING NULL VALUE ELIMINATED IN SET FUNCTION
01004WARNING STRING DATA RIGHT TRUNCATION
Class 02无数据(按 SQL99 这也是一个警告类别)
02000NO DATA
02001NO ADDITIONAL DYNAMIC RESULT SETS RETURNED
Class 03SQL 语句尚未完成
03000SQL STATEMENT NOT YET COMPLETE
Class 08连接异常
08000CONNECTION EXCEPTION
08003CONNECTION DOES NOT EXIST
08006CONNECTION FAILURE
08001SQLCLIENT UNABLE TO ESTABLISH SQLCONNECTION
08004SQLSERVER REJECTED ESTABLISHMENT OF SQLCONNECTION
08007TRANSACTION RESOLUTION UNKNOWN
08P01PROTOCOL VIOLATION
Class 09触发动作异常
09000TRIGGERED ACTION EXCEPTION
Class 0A不支持的特性
0A000FEATURE NOT SUPPORTED
Class 0B无效的事务启动
0B000INVALID TRANSACTION INITIATION
Class 0F定位器异常
0F000LOCATOR EXCEPTION
0F001INVALID SPECIFICATION
Class 0L无效的授权者
0L000INVALID GRANTOR
0LP01INVALID GRANT OPERATION
Class 0P无效的角色规范
0P000INVALID ROLE SPECIFICATION
Class 21基数违反
21000CARDINALITY VIOLATION
Class 22数据异常
22000DATA EXCEPTION
2202EARRAY ELEMENT ERROR
22021CHARACTER NOT IN REPERTOIRE
22008DATETIME FIELD OVERFLOW
22012DIVISION BY ZERO
22005ERROR IN ASSIGNMENT
2200BESCAPE CHARACTER CONFLICT
22022INDICATOR OVERFLOW
22015INTERVAL FIELD OVERFLOW
22018INVALID CHARACTER VALUE FOR CAST
22007INVALID DATETIME FORMAT
22019INVALID ESCAPE CHARACTER
2200DINVALID ESCAPE OCTET
22025INVALID ESCAPE SEQUENCE
22010INVALID INDICATOR PARAMETER VALUE
22020INVALID LIMIT VALUE
22023INVALID PARAMETER VALUE
2201BINVALID REGULAR EXPRESSION
22009INVALID TIME ZONE DISPLACEMENT VALUE
2200CINVALID USE OF ESCAPE CHARACTER
2200GMOST SPECIFIC TYPE MISMATCH
22004NULL VALUE NOT ALLOWED
22002NULL VALUE NO INDICATOR PARAMETER
22003NUMERIC VALUE OUT OF RANGE
22026STRING DATA LENGTH MISMATCH
22001STRING DATA RIGHT TRUNCATION
22011SUBSTRING ERROR
22027TRIM ERROR
22024UNTERMINATED C STRING
2200FZERO LENGTH CHARACTER STRING
22P01FLOATING POINT EXCEPTION
22P02INVALID TEXT REPRESENTATION
22P03INVALID BINARY REPRESENTATION
22P04BAD COPY FILE FORMAT
22P05UNTRANSLATABLE CHARACTER
Class 23完整性约束违反
23000INTEGRITY CONSTRAINT VIOLATION
23001RESTRICT VIOLATION
23502NOT NULL VIOLATION
23503FOREIGN KEY VIOLATION
23505UNIQUE VIOLATION
23514CHECK VIOLATION
Class 24无效的游标状态
24000INVALID CURSOR STATE
Class 25无效的事务状态
25000INVALID TRANSACTION STATE
25001ACTIVE SQL TRANSACTION
25002BRANCH TRANSACTION ALREADY ACTIVE
25008HELD CURSOR REQUIRES SAME ISOLATION LEVEL
25003INAPPROPRIATE ACCESS MODE FOR BRANCH TRANSACTION
25004INAPPROPRIATE ISOLATION LEVEL FOR BRANCH TRANSACTION
25005NO ACTIVE SQL TRANSACTION FOR BRANCH TRANSACTION
25006READ ONLY SQL TRANSACTION
25007SCHEMA AND DATA STATEMENT MIXING NOT SUPPORTED
25P01NO ACTIVE SQL TRANSACTION
25P02IN FAILED SQL TRANSACTION
Class 26无效的 SQL 语句名称
26000INVALID SQL STATEMENT NAME
Class 27触发的数据更改违反
27000TRIGGERED DATA CHANGE VIOLATION
Class 28无效的授权规范
28000INVALID AUTHORIZATION SPECIFICATION
Class 2B仍存在依赖的权限描述符
2B000DEPENDENT PRIVILEGE DESCRIPTORS STILL EXIST
2BP01DEPENDENT OBJECTS STILL EXIST
Class 2D无效的事务终止
2D000INVALID TRANSACTION TERMINATION
Class 2FSQL 例程异常
2F000SQL ROUTINE EXCEPTION
2F005FUNCTION EXECUTED NO RETURN STATEMENT
2F002MODIFYING SQL DATA NOT PERMITTED
2F003PROHIBITED SQL STATEMENT ATTEMPTED
2F004READING SQL DATA NOT PERMITTED
Class 34无效的游标名称
34000INVALID CURSOR NAME
Class 38外部例程异常
38000EXTERNAL ROUTINE EXCEPTION
38001CONTAINING SQL NOT PERMITTED
38002MODIFYING SQL DATA NOT PERMITTED
38003PROHIBITED SQL STATEMENT ATTEMPTED
38004READING SQL DATA NOT PERMITTED
Class 39外部例程调用异常
39000EXTERNAL ROUTINE INVOCATION EXCEPTION
39001INVALID SQLSTATE RETURNED
39004NULL VALUE NOT ALLOWED
39P01TRIGGER PROTOCOL VIOLATED
39P02SRF PROTOCOL VIOLATED
Class 3D无效的目录名称
3D000INVALID CATALOG NAME
Class 3F无效的模式名称
3F000INVALID SCHEMA NAME
Class 40事务回卷
40000TRANSACTION ROLLBACK
40002INTEGRITY CONSTRAINT VIOLATION
40001SERIALIZATION FAILURE
40003STATEMENT COMPLETION UNKNOWN
40P01DEADLOCK DETECTED
Class 42语法错误或访问规则违反
42000SYNTAX ERROR OR ACCESS RULE VIOLATION
42601SYNTAX ERROR
42501INSUFFICIENT PRIVILEGE
42846CANNOT COERCE
42803GROUPING ERROR
42830INVALID FOREIGN KEY
42602INVALID NAME
42622NAME TOO LONG
42939RESERVED NAME
42804DATATYPE MISMATCH
42P18INDETERMINATE DATATYPE
42809WRONG OBJECT TYPE
42703UNDEFINED COLUMN
42883UNDEFINED FUNCTION
42P01UNDEFINED TABLE
42P02UNDEFINED PARAMETER
42704UNDEFINED OBJECT
42701DUPLICATE COLUMN
42P03DUPLICATE CURSOR
42P04DUPLICATE DATABASE
42723DUPLICATE FUNCTION
42P05DUPLICATE PSTATEMENT
42P06DUPLICATE SCHEMA
42P07DUPLICATE TABLE
42712DUPLICATE ALIAS
42710DUPLICATE OBJECT
42702AMBIGUOUS COLUMN
42725AMBIGUOUS FUNCTION
42P08AMBIGUOUS PARAMETER
42P09AMBIGUOUS ALIAS
42P10INVALID COLUMN REFERENCE
42611INVALID COLUMN DEFINITION
42P11INVALID CURSOR DEFINITION
42P12INVALID DATABASE DEFINITION
42P13INVALID FUNCTION DEFINITION
42P14INVALID PSTATEMENT DEFINITION
42P15INVALID SCHEMA DEFINITION
42P16INVALID TABLE DEFINITION
42P17INVALID OBJECT DEFINITION
Class 44违反 WITH CHECK OPTION
44000WITH CHECK OPTION VIOLATION
Class 53资源不足
53000INSUFFICIENT RESOURCES
53100DISK FULL
53200OUT OF MEMORY
53300TOO MANY CONNECTIONS
Class 54超出程序限制
54000PROGRAM LIMIT EXCEEDED
54001STATEMENT TOO COMPLEX
54011TOO MANY COLUMNS
54023TOO MANY ARGUMENTS
Class 55对象未处于先决状态
55000OBJECT NOT IN PREREQUISITE STATE
55006OBJECT IN USE
55P02CANT CHANGE RUNTIME PARAM
Class 57操作员干预
57000OPERATOR INTERVENTION
57014QUERY CANCELED
57P01ADMIN SHUTDOWN
57P02CRASH SHUTDOWN
57P03CANNOT CONNECT NOW
Class 58系统错误(PostgreSQL 本身之外的错误)
58030IO ERROR
58P01UNDEFINED FILE
58P02DUPLICATE FILE
Class F0配置文件错误
F0000CONFIG FILE ERROR
F0001LOCK FILE EXISTS
Class XX内部错误
XX000INTERNAL ERROR
XX001DATA CORRUPTED
XX002INDEX CORRUPTED

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.