支持的版本:当前 (17) / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

53.8. 错误和通知消息字段 #

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

S

严重性:字段内容为 ERRORFATALPANIC(在错误消息中),或者 WARNINGNOTICEDEBUGINFOLOG(在通知消息中),或者其中一个的本地化翻译。始终存在。

V

严重性:字段内容为 ERRORFATALPANIC(在错误消息中),或者 WARNINGNOTICEDEBUGINFOLOG(在通知消息中)。这与 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

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

L

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

R

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

注意

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

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

提交更正

如果您在文档中看到任何不正确、与您使用特定功能的体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。