PostgreSQL 数据库错误状态编号解释[附带列表

PostgreSQL 服务器发出的享有音讯都给予了六个字符的错误代码,
这多少个代码听从 SQL 的 “SQLSTATE” 代码的习惯。需要通晓暴发了怎么错误条件的运用一般应该测试错误代码,而不是翻开文本错误新闻。那一个错误
代码轻易不会趁着 PostgreSQL 的本子更新而修改,并且一般也不会趁机错误信息的本地化而暴发修改。 请小心有些,但不是百分之百,PostgreSQL 生成的错误代码是由 SQL
标准定义的;
有些专业没有定义的一无是处条件是大家阐明的仍旧是从另外数据库借来的。

基于专业,错误代码的头六个字符表示错误连串,而后五个字符表示在该项目内一定的条件。
由此,那么些无法分辨特定错误代码的选拔依然可以从错误序列中揣测要做什么。

Table
A-1
 里面列出了 PostgreSQL 8.1
定义的兼具错误代码。(有些实际上最近并不曾行使,不过 SQL
标准定义了。)错误体系也列出在此。对于每个错误体系都有个”标准”的错误代码,它的末尾六个字符是 000。这一个代码只用于这些落在该类型内,
可是没有授予任何更确切的代码的荒唐条件。

PL/pgSQL 用于每个错误代码的规范名和表中彰显的措辞相同,只是用下划线代替了空荡荡。比如,代码 22012,DIVISION
BY
ZERO,它的规格名是 DIVISION_BY_ZERO。条件名可以用小写或者小写来写都足以。(请留意 PL/pgSQL 并不识别警告,那一点和不当,条件名正相反;这多少个连串是 00,01,和 02。)

代码 含义 
00 类 成功完成 
00000 成功做到(SUCCESSFUL COMPLETION) 
01 类 警告 
01000 警告(WARNING) 
0100C 再次来到了动态结果(DYNAMIC RESULT SETS RETURNED) 
01008 警告,隐含补齐了零比特位(IMPLICIT ZERO BIT PADDING) 
01003 在聚集函数里清除了空值(NULL VALUE ELIMINATED IN SET FUNCTION) 
01007 没有给予权力(PRIVILEGE NOT GRANTED) 
01006 没有收回权限(PRIVILEGE NOT REVOKED) 
01004 字串数据在右端截断(STRING DATA RIGHT TRUNCATION) 
01P01 放弃的特性(DEPRECATED FEATURE) 
02 类 没有数量 — 遵照 SQL 标准的渴求,这也是警戒类 
02000 没有数据(NO DATA) 
02001 重临了从未增大动态结果集(NO ADDITIONAL DYNAMIC RESULT SETS
RETURNED) 
03 类 SQL 语句尚未了结 
03000 SQL 语句尚未了结(SQL STATEMENT NOT YET COMPLETE) 
08 类 连接例外 
08000 连接例外(CONNECTION EXCEPTION) 
08003 连接不存在(CONNECTION DOES NOT EXIST) 
08006 连接退步(CONNECTION FAILURE) 
08001 SQL 客户端不可能创建 SQL 连接(SQLCLIENT UNABLE TO ESTABLISH
SQLCONNECTION) 
08004 SQL 服务器拒绝建立 SQL 连接(SQLSERVER REJECTED ESTABLISHMENT OF
SQLCONNECTION) 
08007 未知的工作解析(TRANSACTION RESOLUTION UNKNOWN) 
08P01 违反协议(PROTOCOL VIOLATION) 
09 类 触发器动作列外 
09000 触发的动作例外(TRIGGERED ACTION EXCEPTION) 
0A 类 不补助特色 
0A000 不协理此特性(FEATURE NOT SUPPORTED) 
0B 类 非法作业初叶化 
0B000 非法作业最先化(INVALID TRANSACTION INITIATION) 
0F 类 指示器例外 
0F000 指示器例外(LOCATOR EXCEPTION) 
0F001 非法的定位器阐明(INVALID LOCATOR SPECIFICATION) 
0L 类 非法赋权人 
0L000 非法赋权人(INVALID GRANTOR) 
0LP01 非法赋权操作(INVALID GRANT OPERATION) 
0P 类 非法角色注解 
0P000 非法角色注明(INVALID ROLE SPECIFICATION) 
21 类 势违反 
21000 势违反(CARDINALITY VIOLATION) 
22 类 数据例外 
22000 数据例外(DATA EXCEPTION) 
2202E 数组下标错误(ARRAY SUBSCRIPT ERROR) 
22021 字符不在准备好的限制内(CHARACTER NOT IN REPERTOIRE) 
22008 日期时间字段溢出(DATETIME FIELD OVERFLOW) 
22012 被零除(DIVISION BY ZERO) 
22005 赋值中出错(ERROR IN ASSIGNMENT) 
2200B 逃逸字符抵触(ESCAPE CHARACTER CONFLICT) 
22022 指示器溢出(INDICATOR OVERFLOW) 
22015 内部字段溢出(INTERVAL FIELD OVERFLOW) 
2201E 对数运算的地下参数(INVALID ARGUMENT FOR LOGARITHM) 
2201F 指数函数的不法参数(INVALID ARGUMENT FOR POWER FUNCTION) 
2201G 宽桶函数的地下参数(INVALID ARGUMENT FOR WIDTH BUCKET
FUNCTION) 
22018 类型转换时非法的字符值(INVALID CHARACTER VALUE FOR CAST) 
22007 非法日期时间格式(INVALID DATETIME FORMAT) 
22019 野鸡的潜流字符(INVALID ESCAPE CHARACTER) 
2200D 非法的潜逃字节(INVALID ESCAPE OCTET) 
22025 非法逃逸系列(INVALID ESCAPE SEQUENCE) 
22P06 非标准应用逃逸字符(NONSTANDARD USE OF ESCAPE CHARACTER) 
22010 非法提醒器参数值(INVALID INDICATOR PARAMETER VALUE) 
22020 非法限制值(INVALID LIMIT VALUE) 
22023 非法参数值(INVALID PARAMETER VALUE) 
2201B 非法正则表达式(INVALID REGULAR EXPRESSION) 
22009 非法时区突显值(INVALID TIME ZONE DISPLACEMENT VALUE) 
2200C 非法利用逃逸字符(INVALID USE OF ESCAPE CHARACTER) 
2200G 最相关品种不般配(MOST SPECIFIC TYPE MISMATCH) 
22004 不允许 NULL 值(NULL VALUE NOT ALLOWED) 
22002 NULL 值不可能做指示器参数(NULL VALUE NO INDICATOR PARAMETER) 
22003 数字值超出范围(NUMERIC VALUE OUT OF RANGE) 
22026 字串数据长度不配合(STRING DATA LENGTH MISMATCH) 
22001 字串数据动手被截断(STRING DATA RIGHT TRUNCATION) 
22011 抽取子字串错误(SUBSTRING ERROR) 
22027 截断错误(TRIM ERROR) 
22024 未终止的 C 字串(UNTERMINATED C STRING) 
2200F 零长度的字符串(ZERO LENGTH CHARACTER STRING) 
22P01 浮点例外(FLOATING POINT EXCEPTION) 
22P02 非法文本表现形式(INVALID TEXT REPRESENTATION) 
22P03 非法二进制表现模式(INVALID BINARY REPRESENTATION) 
22P04 错误的 COPY 格式(BAD COPY FILE FORMAT) 
22P05 不可翻译字符(UNTRANSLATABLE CHARACTER) 
23 类 违反完整性约束 
23000 违反完整性约束(INTEGRITY CONSTRAINT VIOLATION) 
23001 违反限制(RESTRICT VIOLATION) 
23502 违反非空(NOT NULL VIOLATION) 
23503 违反外键约束(FOREIGN KEY VIOLATION) 
23505 违反唯一约束(UNIQUE VIOLATION) 
23514 违反检查(CHECK VIOLATION) 
24 类 非法游标状态 
24000 非法游标状态(INVALID CURSOR STATE) 
25 类 非法作业状态 
25000 非法工作状态(INVALID TRANSACTION STATE) 
25001 活跃的 SQL 状态(ACTIVE SQL TRANSACTION) 
25002 分支事务已经激活(BRANCH TRANSACTION ALREADY ACTIVE) 
25008 持有的游标要求一律的隔离级别(HELD CURSOR REQUIRES SAME ISOLATION
LEVEL) 
25003 对支行事务的不合适的走访形式(INAPPROPRIATE ACCESS MODE FOR BRANCH
TRANSACTION) 
25004 对支行事务的不体面的隔断级别(INAPPROPRIATE ISOLATION LEVEL FOR
BRANCH TRANSACTION) 
25005 支行事务没有活跃的 SQL 事务(NO ACTIVE SQL TRANSACTION FOR BRANCH
TRANSACTION) 
25006 只读的 SQL 事务(READ ONLY SQL TRANSACTION) 
25007 不协理混和的形式和数码说话(SCHEMA AND DATA STATEMENT MIXING NOT
SUPPORTED) 
25P01 没有活跃的 SQL 事务(NO ACTIVE SQL TRANSACTION) 
25P02 在失利的 SQL 事务中(IN FAILED SQL TRANSACTION) 
26 类 非法 SQL 语句名 
26000 非法 SQL 语句名(INVALID SQL STATEMENT NAME) 
27 类 触发的多寡变动违规 
27000 触发的数量变动违规(TRIGGERED DATA CHANGE VIOLATION) 
28 类 非法授权声明 
28000 非法授权讲明(INVALID AUTHORIZATION SPECIFICATION) 
2B 类 依旧存在依靠的事先级描述符 
2B000 如故留存依靠的先行级描述符(DEPENDENT PRIVILEGE DESCRIPTORS STILL
EXIST) 
2BP01 依赖性对象依旧存在(DEPENDENT OBJECTS STILL EXIST) 
2D 类 非法的事体终止 
2D000 非法的作业终止(INVALID TRANSACTION TERMINATION) 
2F 类 SQL 过程不同 
ACCESS,2F000 SQL 过程不同(SQL ROUTINE EXCEPTION) 
2F005 执行的函数没有回来语句(FUNCTION EXECUTED NO RETURN STATEMENT) 
2F002 不容许修改 SQL 数据(MODIFYING SQL DATA NOT PERMITTED) 
2F003 企图应用禁止的 SQL 语句(PROHIBITED SQL STATEMENT ATTEMPTED) 
2F004 不容许读取 SQL 数据(READING SQL DATA NOT PERMITTED) 
34 类 非法游标名 
34000 非法游标名(INVALID CURSOR NAME) 
38 类 外部过程不同 
38000 外部过程不同(EXTERNAL ROUTINE EXCEPTION) 
38001 不允许包含的 SQL (CONTAINING SQL NOT PERMITTED) 
38002 不允许修改 SQL 数据(MODIFYING SQL DATA NOT PERMITTED) 
38003 企图利用禁止的 SQL 语句(PROHIBITED SQL STATEMENT ATTEMPTED) 
38004 不容许读取 SQL 数据(READING SQL DATA NOT PERMITTED) 
39 类 外部过程调用例外 
39000 外部过程调用例外(EXTERNAL ROUTINE INVOCATION EXCEPTION) 
39001 重回了不法的 SQLSTATE(INVALID SQLSTATE RETURNED) 
39004 不同意空值(NULL VALUE NOT ALLOWED) 
39P01 违反触发器协议(TRIGGER PROTOCOL VIOLATED) 
39P02 违反SRF协议(SRF PROTOCOL VIOLATED) 
3B 类 保存点例外 
3B000 保存点例外(SAVEPOINT EXCEPTION) 
3B001 无效的保存点申明(INVALID SAVEPOINT SPECIFICATION) 
3D 类 非法数据库名 
3D000 非法数据库名(INVALID CATALOG NAME) 
3F 类 非法形式名 
3F000 非法情势名(INVALID SCHEMA NAME) 
40 类 事务回滚 
40000 事务回滚(TRANSACTION ROLLBACK) 
40002 违反工作完整性约束(TRANSACTION INTEGRITY CONSTRAINTVIOLATION) 
40001 串行化败北(SERIALIZATION FAILURE) 
40003 不知情语句是否终止(STATEMENT COMPLETION UNKNOWN) 
40P01 侦测到死锁(DEADLOCK DETECTED) 
42 类 语法错误或者违反访问规则 
42000 语法错误或者违反访问规则(SYNTAX ERROR OR ACCESS RULE
VIOLATION) 
42601 语法错误(SYNTAX ERROR) 
42501 权限不够(INSUFFICIENT PRIVILEGE) 
42846 不可以展开类型转换(CANNOT COERCE) 
42803 分组错误(GROUPING ERROR) 
42830 非法的外键(INVALID FOREIGN KEY) 
42602 非法名字(INVALID NAME) 
42622 名字太长(NAME TOO LONG) 
42939 保存名字(RESERVED NAME) 
42804 数据类型不兼容(DATATYPE MISMATCH) 
42P18 未决的数据类型(INDETERMINATE DATATYPE) 
42809 错误的对象类型(WRONG OBJECT TYPE) 
42703 未定义的字段(UNDEFINED COLUMN) 
42883 未定义的函数(UNDEFINED FUNCTION) 
42P01 未定义的表(UNDEFINED TABLE) 
42P02 未定义的参数(UNDEFINED PARAMETER) 
42704 未定义对象(UNDEFINED OBJECT) 
42701 重复的字段(DUPLICATE COLUMN) 
42P03 重复的游标(DUPLICATE CURSOR) 
42P04 重复的数据库(DUPLICATE DATABASE)) 
42723 重复的函数(DUPLICATE FUNCTION) 
42P05 重复的预备好语句(DUPLICATE PREPARED STATEMENT) 
42P06 重复的形式(DUPLICATE SCHEMA) 
42P07 重复的表(DUPLICATE TABLE) 
42712 重复的别名(DUPLICATE ALIAS) 
42710 重复的目的(DUPLICATE OBJECT) 
42702 模糊的字段(AMBIGUOUS COLUMN) 
42725 模糊的函数(AMBIGUOUS FUNCTION) 
42P08 模糊的参数(AMBIGUOUS PARAMETER) 
42P09 模糊的别名(AMBIGUOUS ALIAS) 
42P10 非法字段引用(INVALID COLUMN REFERENCE) 
42611 非法字段定义(INVALID COLUMN DEFINITION) 
42P11 非法游标定义(INVALID CURSOR DEFINITION) 
42P12 非法的数据库定义(INVALID DATABASE DEFINITION) 
42P13 非法函数定义(INVALID FUNCTION DEFINITION) 
42P14 非法准备好语句定义(INVALID PREPARED STATEMENT DEFINITION) 
42P15 非法格局定义(INVALID SCHEMA DEFINITION) 
42P16 非法表定义(INVALID TABLE DEFINITION) 
42P17 非法对象定义(INVALID OBJECT DEFINITION) 
44 类 违反 WITH CHECK 选项 
44000 违反 WITH CHECK 选项(WITH CHECK OPTION VIOLATION) 
53 类 资源不够 
53000 资源不够(INSUFFICIENT RESOURCES) 
53100 磁盘满(DISK FULL) 
53200 内存耗尽(OUT OF MEMORY) 
53300 太多连接(TOO MANY CONNECTIONS) 
54 类 超过程序限制 
54000 领先程序限制(PROGRAM LIMIT EXCEEDED) 
54001 语句太复杂(STATEMENT TOO COMPLEX) 
54011 太多字段(TOO MANY COLUMNS) 
54023 参数太多(TOO MANY ARGUMENTS) 
55 类 对象不在预先要求的事态 
55000 对象不在预先要求的境况(OBJECT NOT IN PREREQUISITE STATE) 
55006 对象在行使中(OBJECT IN USE) 
55P02 不能修改运行时参数(CANT CHANGE RUNTIME PARAM) 
55P03 锁不可得到(LOCK NOT AVAILABLE) 
57 类 操作者干涉 
57000 操作者干涉(OPERATOR INTERVENTION) 
57014 查询被吊销(QUERY CANCELED) 
57P01 管理员关机(ADMIN SHUTDOWN) 
57P02 崩溃关机(CRASH SHUTDOWN) 
57P03 现在不可以连接(CANNOT CONNECT NOW) 
58 类 系统错误( PostgreSQL 自己内部的荒唐) 
58030 IO 错误(IO ERROR) 
58P01 未定义的公文(UNDEFINED FILE) 
58P02 重复的文本(DUPLICATE FILE) 
F0 类 配置文件漏洞百出 
F0000 配置文件漏洞百出(CONFIG FILE ERROR) 
F0001 锁文件存在(LOCK FILE EXISTS) 
P0 类 PL/pgSQL 错误 
P0000 PLPGSQL 错误(PLPGSQL ERROR) 
P0001 抛出不同(RAISE EXCEPTION) 
XX 类 内部错误 
XX000 内部错误(INTERNAL ERROR) 
XX001 数据损坏(DATA CORRUPTED) 
XX002 索引损坏(INDEX CORRUPTED)

相关文章