选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.0 已于 2015 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

附录 A. PostgreSQL Error Codes

PostgreSQL 服务器发出的所有消息都被分配了五字符错误代码,遵循 SQL 标准对 SQLSTATE 代码的约定。需要知道发生了哪一种错误条件的应用,通常应测试错误代码,而不是查看错误消息的文本内容。这些错误代码在不同 PostgreSQL 版本之间更不容易发生变化,也不会因错误消息的本地化而改变。请注意,PostgreSQL 产生的错误代码中,只有一部分由 SQL 标准定义;还有一些用于标准未定义情况的附加错误代码,是新设的或从其他数据库借用而来的。

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

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

每个错误代码的 PL/pgSQL 条件名与表中所示的短语相同, 只是把空格替换成下划线。例如,代码 22012(DIVISION BY ZERO)的条件名是 DIVISION_BY_ZERO。条件名可以大写或小写。 (注意, PL/pgSQL 不识别警告(而非错误)的 条件名;它们是类别 00、01 和 02。)

表 A.1. PostgreSQL Error Codes

错误代码 含义 条件名称
类 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 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
类 20 — 未找到 CASE
20000 未找到 CASE case_not_found
类 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
22014 NTILE 函数的参数无效 invalid_argument_for_ntile_function
22016 NTH_VALUE 函数的参数无效 invalid_argument_for_nth_value_function
2201F 幂函数参数无效 invalid_argument_for_power_function
2201G WIDTH_BUCKET 函数参数无效 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
22023 无效的参数值 invalid_parameter_value
2201B 无效的正则表达式 invalid_regular_expression
2201W LIMIT 子句中的行数无效 invalid_row_count_in_limit_clause
2201X RESULT OFFSET 子句中的行数无效 invalid_row_count_in_result_offset_clause
22009 无效的时区偏移值 invalid_time_zone_displacement_value
2200C 转义字符的无效使用 invalid_use_of_escape_character
2200G 最明确类型不匹配 most_specific_type_mismatch
22004 NULL VALUE NOT ALLOWED null_value_not_allowed
22002 空值没有指示器参数 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
2200L 不是 XML 文档 not_an_xml_document
2200M 无效的 XML 文档 invalid_xml_document
2200N 无效的 XML 内容 invalid_xml_content
2200S 无效的 XML 注释 invalid_xml_comment
2200T 无效的 XML 处理指令 invalid_xml_processing_instruction
类 23 — 违反完整性约束
23000 违反完整性约束 integrity_constraint_violation
23001 违反限制 restrict_violation
23502 违反非空约束 not_null_violation
23503 违反外键约束 foreign_key_violation
23505 违反唯一约束 unique_violation
23514 违反检查约束 check_violation
23P01 违反排他约束 exclusion_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
28P01 无效密码 invalid_password
类 2B — 仍存在依赖的特权描述符
2B000 仍存在依赖的特权描述符 dependent_privilege_descriptors_still_exist
2BP01 仍存在依赖的对象 dependent_objects_still_exist
类 2D — 无效的事务终止
2D000 无效的事务终止 invalid_transaction_termination
类 2F — SQL 例程异常
2F000 SQL 例程异常 sql_routine_exception
2F005 函数未执行 RETURN 语句 function_executed_no_return_statement
2F002 MODIFYING SQL DATA NOT PERMITTED modifying_sql_data_not_permitted
2F003 PROHIBITED SQL STATEMENT ATTEMPTED prohibited_sql_statement_attempted
2F004 READING SQL DATA NOT PERMITTED 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_constraint_violation
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
42P20 开窗错误 windowing_error
42P19 无效的递归 invalid_recursion
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
57P04 数据库被删除 database_dropped
类 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 PL/pgSQL 错误 plpgsql_error
P0001 RAISE 异常 raise_exception
P0002 未找到数据 no_data_found
P0003 行太多 too_many_rows
类 XX — 内部错误
XX000 内部错误 internal_error
XX001 数据损坏 data_corrupted
XX002 索引损坏 index_corrupted

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。