9.3 9.4 9.5 9.6 10 11 12 13 14 Current(15)
阿里云PostgreSQL 问题报告 纠错本页面

55.8. 错误和通知消息域

本节描述了ErrorResponse和NoticeResponse消息中可能出现的字段。每个字段类型都有一个单字节的标识符。 请注意,任何给定的字段类型在消息中最多只能出现一次。

S

严重性: 字段内容为ERROR, FATAL, 或 PANIC (在错误消息中), 或 WARNING, NOTICE, DEBUG, INFO, 或 LOG (在通知消息中), 或者这些内容的本地化翻译。始终存在。

V

严重性:字段内容为ERRORFATALPANIC(在错误消息中),或WARNINGNOTICEDEBUGINFOLOG(在通知消息中)。 这与S字段相同,只是内容不会被本地化。仅在由PostgreSQL版本9.6 及更高版本生成的消息中存在。

C

Code: 错误的SQLSTATE代码(参见附录 A)。不可本地化。始终存在。

M

消息: 主要的人类可读错误消息。 这应该准确但简洁(通常一行)。 总是存在。

D

详细信息:一个可选的次要错误消息,提供有关问题的更多详细信息。可能会跨多行。

H

提示: 关于问题应该怎么做的一个可选建议。 这意在与细节不同,它提供建议(可能不合适)而不是硬性事实。 可能会跨越多行。

P

位置:字段值是一个十进制ASCII整数,表示错误光标位置,作为原始查询字符串的索引。 第一个字符的索引为1,位置以字符而非字节计量。

p

内部位置:这与P字段的定义相同,但在光标位置指向内部生成的命令而不是客户端提交的命令时使用。 当此字段出现时,q字段将始终出现。

q

内部查询: 一个失败的内部生成命令的文本。 例如,这可能是由PL/pgSQL函数发出的SQL查询。

W

Where: 错误发生的上下文指示。 目前包括活动的过程语言函数和内部生成查询的调用堆栈回溯。 跟踪每行一个条目,最近的在前。

s

Schema name: 如果错误与特定数据库对象相关联,则为包含该对象的模式的名称(如果有)。

t

表名: 如果错误与特定表相关联,则为表的名称。(有关表模式名称的名称,请参考模式名称字段。)

c

列名: 如果错误与特定表列相关联,则为列的名称。(请参考模式和表名字段以识别表。)

d

数据类型名称: 如果错误与特定数据类型相关联,则为数据类型的名称。 (有关数据类型模式的名称,请参阅模式名称字段。)

n

约束名称: 如果错误与特定约束相关联,则为约束的名称。请参考上面列出的字段,了解相关表格或域。 (为此,即使索引不是使用约束语法创建的,也将其视为约束。)

F

文件: 报告错误的源代码位置的文件名。

L

Line: 源代码位置的行号,报告错误的位置。

R

Routine: 报告错误的源代码例程的名称。

注意

模式名称、表名称、列名称、数据类型名称和约束名称的字段仅针对有限数量的错误类型提供; 请参阅附录 A。前端不应假设任何这些字段的存在就保证了另一个字段的存在。 核心错误源观察到上述相互关系,但用户定义的函数可能以其他方式使用这些字段。 同样地,客户端不应假设这些字段表示当前数据库中的当代对象。

客户端负责格式化显示的信息以满足其需求;特别是应根据需要换行。错误消息字段中出现的换行符应被视为段落分隔符,而不是换行符。