On this page
52.8. 错误和通知消息字段
本节描述了可以在 ErrorResponse 和 NoticeResponse 消息中显示的字段。每个字段类型都有一个单字节标识令牌。请注意,任何给定的字段类型每个消息最多应出现一次。
S
- 严重性:字段内容是
ERROR
,FATAL
或PANIC
(在错误消息中)或WARNING
,NOTICE
,DEBUG
,INFO
或LOG
(在通知消息中),或其中之一的本地化翻译。始终存在。
- 严重性:字段内容是
V
- 严重性:字段内容是
ERROR
,FATAL
或PANIC
(在错误消息中),或WARNING
,NOTICE
,DEBUG
,INFO
或LOG
(在通知消息中)。这与S
字段相同,除了内容从未本地化。这仅在 PostgreSQL 9.6 及更高版本生成的消息中存在。
- 严重性:字段内容是
C
- 代码:错误的 SQLSTATE 代码(请参阅Appendix A)。不可本地化。始终存在。
M
- 消息:主要的人类可读错误消息。这应该准确但简洁(通常为一行)。始终存在。
D
- 详细信息:可选的辅助错误消息,其中包含有关问题的更多详细信息。可能会运行到多行。
H
- 提示:有关该问题的可选建议。这旨在与“细节”有所不同,因为它提供了建议(可能不合适)而不是事实。可能会运行到多行。
P
- 位置:字段值为十进制 ASCII 整数,指示错误光标位置作为原始查询字符串的索引。第一个字符的索引为 1,位置以字符而不是字节为单位。
p
- 内部位置:与
P
字段定义相同,但是在光标位置引用内部生成的命令而不是 Client 端提交的命令时使用。出现此字段时,总是会出现q
字段。
- 内部位置:与
q
- 内部查询:内部生成的失败命令的文本。例如,这可以是由 PL/pgSQL 函数发出的 SQL 查询。
W
- 其中:指示发生错误的上下文。当前,这包括对活动过程语言功能和内部生成的查询的调用堆栈回溯。跟踪是每行一个条目,最近的是第一行。
s
- 模式名称:如果错误与特定的数据库对象相关联,则包含该对象的模式的名称(如果有)。
t
- 表名:如果错误与特定表相关联,则为表名。 (有关表的架构名称,请参阅架构名称字段.)
c
- 列名:如果错误与特定的表列相关,则为列名。 (请参阅架构和表名称字段以标识表.)
d
- 数据类型名称:如果错误与特定数据类型相关联,则为数据类型的名称。 (有关数据类型的模式的名称,请参考模式名称字段.)
n
- 约束名称:如果错误与特定约束相关联,则为约束的名称。有关关联的表或域,请参考上面列出的字段。 (为此,即使索引不是使用约束语法创建的,也应将它们视为约束.)
F
- 文件:报告错误的源代码位置的文件名。
L
- Line:报告错误的源代码位置的行号。
R
- 例程:报告错误的源代码例程的名称。
Note
仅为有限数量的错误类型提供模式名称,表名称,列名称,数据类型名称和约束名称的字段。参见Appendix A。前端不应假定任何这些字段的存在都可以保证另一个字段的存在。核心错误源遵循上面提到的相互关系,但是用户定义的函数可能以其他方式使用这些字段。同样,Client 不应假定这些字段表示当前数据库中的当代对象。
Client 负责格式化显示的信息以满足其需求;特别是它应根据需要断开长行。错误消息字段中出现的换行符应视为段落分隔符,而不是换行符。