1、PostgreSQL 错误代码Appendix A. PostgreSQL错误代码PostgreSQL服务器发出的所有消息都赋予 了五个字符的错误代码,这些代码遵循 SQL 的SQLSTATE 代码的习惯。需要知道发生了什么错误条件的应用通常应该测试错误代码, 而不是查看文本错误信息。这些错误代码轻易不会随着PostgreSQL 的版本更新而修改,并且一般也不会随着错误信息的本地化而发生修改。 请注意有些(但不是全部)PostgreSQL生成的错误代码是 由 SQL 标准定义的;有些标准没有定义的错误条件是发明的或者是从其它数据库借来的。根据标准,错误代码的头两个字符表示错误类别, 而后三个字
2、符表示在该类别内特定的条件。因此, 那些不能识别特定错误代码的应用仍然可以从错误类别中推断要做什么。Table A-1里面列出了PostgreSQL 8.2.3 定义的所有错误代码(有些实际上目前并没有使用, 但是 SQL 标准定义了)。错误类别也列出在此。对于每个错误类别都有个 标准的错误代码,它的最后三个字符是000。 这个代码只用于那些落在该类别内,但是没有赋予任何更准确的代码的错误条件。PL/pgSQL用于每个错误代码的条件名和表中显示的措辞相同, 只是用下划线代替了空白。比如,代码22012, DIVISION BY ZERO 的条件名是DIVISION_BY_ZERO。 条件名大小
3、写无关。(请注意PL/pgSQL并不识别警告,这一点和错误、条件名正相反;那些是 00, 01, 02 类别。)Table A-1. PostgreSQL 错误代码错误代码含义常量名Class 00 成功完成00000成功完成successful_completionClass 01 警告01000警告warning0100C返回了动态结果dynamic_result_sets_returned01008警告,隐含补齐了零比特位implicit_zero_bit_padding01003在集合函数里消除nullnull_value_eliminated_in_set_function01007
4、没有赋予权限privilege_not_granted01006没有撤销权限privilege_not_revoked01004字符串数据在右端截断string_data_right_truncation01P01废弃的特性deprecated_featureClass 02 没有数据(按照 SQL 标准的要求,这也是警告类)02000没有数据no_data02001返回了没有附加动态结果集no_additional_dynamic_result_sets_returnedClass 03 SQL语句尚未结束03000SQL语句尚未结束sql_statement_not_yet_complet
5、eClass 08 连接异常08000连接异常connection_exception08003连接不存在connection_does_not_exist08006连接失败connection_failure08001SQL 客户端不能建立 SQL 连接sqlclient_unable_to_establish_sqlconnection08004SQL 服务器拒绝建立 SQL 连接sqlserver_rejected_establishment_of_sqlconnection08007未知的事务解析transaction_resolution_unknown08P01违反协议protoc
6、ol_violationClass 09 Triggered Action Exception触发器动作异常09000触发器动作异常triggered_action_exceptionClass 0A 不支持特性0A000不支持此特性feature_not_supportedClass 0B 非法事务初始化0B000非法事务初始化invalid_transaction_initiationClass 0F 定位器异常0F000定位器异常locator_exception0F001非法的定位器声明invalid_locator_specificationClass 0L 非法赋权者0L000非法
7、赋权者invalid_grantor0LP01非法赋权操作invalid_grant_operationClass 0P 非法角色声明0P000非法角色声明invalid_role_specificationClass 20 未发现情况20000未发现情况case_not_foundClass 21 势违例21000势违例cardinality_violationClass 22 数据异常22000数据异常data_exception2202E数组下标错误array_subscript_error22021字符不在规定范围内character_not_in_repertoire22008日期时
8、间字段溢出datetime_field_overflow22012被零除division_by_zero22005赋值中出错error_in_assignment2200B逃逸字符冲突escape_character_conflict22022INDICATOR OVERFLOW指示器溢出indicator_overflow22015内部字段溢出interval_field_overflow2201E对数运算的非法参数invalid_argument_for_logarithm22014NTILE函数的无效参数invalid_argument_for_ntile_function22016N倍
9、函数的无效参数invalid_argument_for_nth_value_function2201F指数函数的无效参数invalid_argument_for_power_function2201GBUCKET函数的非法参数invalid_argument_for_width_bucket_function22018类型转换时非法的字符值invalid_character_value_for_cast22007非法日期时间格式invalid_datetime_format22019非法的逃逸字符invalid_escape_character2200D非法的逃逸字节invalid_escap
10、e_octet22025非法逃逸序列invalid_escape_sequence22P06非标准使用逃逸字符nonstandard_use_of_escape_character22010非法指示器参数值invalid_indicator_parameter_value22023非法参数值invalid_parameter_value2201B非法正则表达式invalid_regular_expression2201W无效的行数限制invalid_row_count_in_limit_clause2201X在结果抵消子句中无效的行数invalid_row_count_in_result_of
11、fset_clause22009非法时区显示值invalid_time_zone_displacement_value2200C逃逸字符的非法使用invalid_use_of_escape_character2200G最相关类型不匹配most_specific_type_mismatch22004不允许 NULL 值null_value_not_allowed22002NULL 值不能做指示器参数null_value_no_indicator_parameter22003数字值超出范围numeric_value_out_of_range22026字符串数据长度不匹配string_data_le
12、ngth_mismatch22001字符串数据右边被截断string_data_right_truncation22011抽取子字符串错误substring_error22027截断错误trim_error22024未结束的 C 字符串unterminated_c_string2200F零长度的字符串zero_length_character_string22P01浮点异常floating_point_exception22P02非法文本表现形式invalid_text_representation22P03非法二进制表现形式invalid_binary_representation22P04
13、错误的COPY文件格式bad_copy_file_format22P05不可翻译字符untranslatable_character2200L不是一个XML文档not_an_xml_document2200M无效的XML文档invalid_xml_document2200N无效的XML内容invalid_xml_content2200S无效的XML评论invalid_xml_comment2200T无效的XML处理指令invalid_xml_processing_instructionClass 23 违反完整性约束23000违反完整性约束integrity_constraint_violat
14、ion23001约束限制restrict_violation23502NOT NULL VIOLATION违反非空not_null_violation23503违反外键约束foreign_key_violation23505违反唯一约束unique_violation23514违反检查check_violation23P01违反排除exclusion_violationClass 24 非法游标状态24000非法游标状态invalid_cursor_stateClass 25 非法事务状态25000非法事务状态invalid_transaction_state25001活跃的SQL状态acti
15、ve_sql_transaction25002分支事务已经激活branch_transaction_already_active25008持有的指针要求同样的隔离级别held_cursor_requires_same_isolation_level25003对分支事务的不恰当的访问方式inappropriate_access_mode_for_branch_transaction25004对分支事务的不恰当的隔离级别inappropriate_isolation_level_for_branch_transaction25005分支事务没有活跃的SQL事务no_active_sql_trans
16、action_for_branch_transaction25006只读的SQL事务read_only_sql_transaction25007不支持混和的模式和数据语句schema_and_data_statement_mixing_not_supported25P01没有活跃的SQL事务no_active_sql_transaction25P02在失败的SQL事务中in_failed_sql_transactionClass 26 非法SQL语句名26000非法SQL语句名invalid_sql_statement_nameClass 27 触发数据更改违规27000触发数据更改违规tri
17、ggered_data_change_violationClass 28 非法授权声明28000非法授权声明invalid_authorization_specification28P01非法密码invalid_passwordClass 2B 依然存在依赖的优先级描述符2B000依然存在依赖的优先级描述符dependent_privilege_descriptors_still_exist2BP01依赖性对象仍然存在dependent_objects_still_existClass 2D 非法的事务终止2D000非法的事务终止invalid_transaction_terminationC
18、lass 2F SQL过程异常2F000SQL过程异常sql_routine_exception2F005执行的函数没有返回语句function_executed_no_return_statement2F002不允许修改SQL数据modifying_sql_data_not_permitted2F003企图使用禁止的SQL语句prohibited_sql_statement_attempted2F004不允许读取SQL数据reading_sql_data_not_permittedClass 34 非法指针名34000非法指针名invalid_cursor_nameClass 38 外部过程
19、异常38000外部过程异常external_routine_exception38001不允许包含的SQLcontaining_sql_not_permitted38002不允许修改SQL数据modifying_sql_data_not_permitted38003企图使用禁止的SQL语句prohibited_sql_statement_attempted38004不允许读取SQL数据reading_sql_data_not_permittedClass 39 外部过程调用异常39000外部过程调用异常external_routine_invocation_exception39001返回了非
20、法的SQL状态invalid_sqlstate_returned39004不允许使用NULLnull_value_not_allowed39P01违反触发器协议trigger_protocol_violated39P02违反 SRF 协议srf_protocol_violatedClass 3B 保存点异常3B000保存点异常savepoint_exception3B001无效的保存点声明invalid_savepoint_specificationClass 3D 非法目录名3D000非法目录名invalid_catalog_nameClass 3F 非法模式名3F000非法模式名inval
21、id_schema_nameClass 40 事务回滚40000事务回滚transaction_rollback40002违反事务完整性约束transaction_integrity_constraint_violation40001串行化失败serialization_failure40003不知道语句是否结束statement_completion_unknown40P01侦测到死锁deadlock_detectedClass 42 语法错误或者违反访问规则42000语法错误或者违反访问规则syntax_error_or_access_rule_violation42601语法错误synt
22、ax_error42501权限不够insufficient_privilege42846无法进行类型转换cannot_coerce42803分组错误grouping_error42P20开窗口错误windowing_error42P19非法递归invalid_recursion42830非法的外键invalid_foreign_key42602非法名称invalid_name42622名称过长name_too_long42939保留名称reserved_name42804数据类型不匹配datatype_mismatch42P18模糊数据类型indeterminate_datatype42809
23、错误的对象类型wrong_object_type42703未定义的字段undefined_column42883未定义的函数undefined_function42P01未定义的表undefined_table42P02未定义的参数undefined_parameter42704未定义对象undefined_object42701重复的字段duplicate_column42P03重复的游标duplicate_cursor42P04重复的数据库duplicate_database42723重复的函数duplicate_function42P05重复的预备语句duplicate_prepared
24、_statement42P06重复的模式duplicate_schema42P07重复的表duplicate_table42712重复的别名duplicate_alias42710重复的对象duplicate_object42702模糊的字段ambiguous_column42725模糊的函数ambiguous_function42P08模糊的参数ambiguous_parameter42P09模糊的别名ambiguous_alias42P10非法字段引用invalid_column_reference42611非法字段定义invalid_column_definition42P11非法游标定
25、义invalid_cursor_definition42P12非法数据库定义invalid_database_definition42P13非法函数定义invalid_function_definition42P14非法预备语句定义invalid_prepared_statement_definition42P15非法模式定义invalid_schema_definition42P16非法表定义invalid_table_definition42P17非法对象定义invalid_object_definitionClass 44 违反 WITH CHECK 选项44000违反 WITH CHE
26、CK 选项with_check_option_violationClass 53 资源不够53000资源不够insufficient_resources53100磁盘满disk_full53200内存耗尽out_of_memory53300太多连接too_many_connectionsClass 54 过多的程序限制54000过多的程序限制program_limit_exceeded54001语句太复杂statement_too_complex54011字段太多too_many_columns54023参数太多too_many_argumentsClass 55 对象不在预先要求的状态550
27、00对象不在预先要求的状态object_not_in_prerequisite_state55006对象在使用中object_in_use55P02无法修改运行时参数cant_change_runtime_param55P03锁不可获取lock_not_availableClass 57 操作者干涉57000操作者干涉operator_intervention57014查询被取消query_canceled57P01管理员关机admin_shutdown57P02崩溃关机crash_shutdown57P03现在无法连接cannot_connect_now57P04删除数据库database_
28、droppedClass 58 系统错误(PostgreSQL 自己内部的错误)58030IO错误io_error58P01未定义的文件undefined_file58P02备份文件(未定义文件)duplicate_fileClass F0 配置文件错误F0000配置文件错误config_file_errorF0001锁文件存在lock_file_existsClass P0 PL/pgSQL 错误P0000PL/pgSQL 错误plpgsql_errorP0001上升异常raise_exceptionP0002未找到数据no_data_foundP0003行太多too_many_rowsClass XX 内部错误XX000内部错误internal_errorXX001数据损坏data_corruptedXX002索引损坏index_corrupted
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1