Postgresql 中文操作指南

55.8. Error and Notice Message Fields #

本部分描述可以在 ErrorResponse 和 NoticeResponse 消息中显示的字段。每种字段类型都有一个单字节标识令牌。请注意,给定的字段类型在每条消息中最多应显示一次。

  • S

    • Severity:字段内容为 ERRORFATALPANIC(错误消息中)或 WARNINGNOTICEDEBUGINFOLOG(通知消息中),或其中之一的本地化翻译。总是存在。

  • V

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

  • C

    • 代码:该错误的 SQLSTATE 代码(参见 Appendix A)。不可本地化。始终存在。

  • M

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

  • D

    • Detail:可选的次级错误消息,对问题提供更多详细信息。可能会跨越多行。

  • H

    • Hint:关于如何解决问题的可选建议。它与 Detail 不同之处在于,它提供建议(可能不合适),而不是具体事实。可能会跨越多行。

  • P

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

  • p

    • Internal position:它的定义与 P 字段相同,但它用于光标位置表示内部生成的命令,而不是客户端提交的命令时。q 字段将在此字段出现时始终出现。

  • q

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

  • W

    • Where:出错的环境说明。目前,这包括活动过程语言函数和内部生成的查询的调用堆栈回溯。跟踪是每行一个条目,最新条目在前。

  • s

    • Schema name:如果错误与特定数据库对象相关联,则该对象所属架构的名称(如有)。

  • t

    • 表名:如果该错误与特定表相关联,则为该表的名称。(有关表的 schema 名称,请参阅 schema 名称字段。)

  • c

    • Column name:如果错误与特定表列相关联,则该列的名称。(有关表的名称,请参阅架构和表名称字段。)

  • d

    • 数据类型名称:如果这个错误与特定数据类型相关联,则为该数据类型名称。(有关该数据类型 schema 名称,请参阅 schema 名称字段。)

  • n

    • 约束名称:如果该错误与特定约束相关联,则为该约束的名称。有关关联表或域,请参阅上面列出的字段。(对于这个目的,索引被视为约束,即使它们不是使用约束语法创建。)

  • F

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

  • L

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

  • R

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

Note

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

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