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