本节描述那些可能出现在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代码(参阅附录 A)。非本地化。总是出现。
M
消息:人类可读的错误消息的主体。这些信息应该准确并且简洁(通常是一行)。总是出现。
D
细节:一个可选的二级错误消息,携带了有关问题的更多错误消息。可以是多行。
H
提示:一个可选的有关如何处理问题的建议。它和细节不同的地方是它提出了建议(可能并不合适)而不仅仅是事实。可以是多行。
P
位置:这个域值是一个十进制ASCII整数,表示一个错误游标的位置,它是一个指向原始查询字符串的索引。第一个字符的索引是 1,位置是以字符计算而非字节计算的。
p
内部位置:这个域和P
域定义相同,但是它被用于当游标位置指向一个内部生成的命令的情况, 而不是用于客户端提交的命令。这个域出现的时候,总是会出现q
域。
q
内部查询:失败的内部生成的命令的文本。比如,它可能是一个PL/pgSQL函数发出的 SQL 查询。
W
哪里:一个指示错误发生的环境的指示器。目前,它包含一个活跃的过程语言函数的调用堆栈的路径和内部生成的查询。 这个路径每个项记录一行,最新的在最前面。
s
模式名:如果错误与一个指定数据库对象相关,这里是包含该对象的模式名(如果有)。
t
表名:如果错误与一个指定表相关,这里是表的名字(引用该表模式的名字的模式名域)。
c
列名:如果错误与一个指定表列相关,这里是该列的名字(引用该模式和表的名字来标识该表)。
d
数据类型名:如果错误与一个指定数据类型相关,这里是该数据类型的名字(引用该数据类型模式的名字的模式名域)。
n
约束名:如果错误是和一个指定约束相关,这里是该约束的名字。引用至上面列出的相关表或域的域(为了这个目的,索引被视作约束,即使它们并不是按照约束语法创建的)。
F
文件:报告的错误在源代码中的文件名。
L
行:报告的错误所在的源代码的位置的行号。
R
例程:报告错误的例程在源代码中的名字。
用于模式名、表名、列名、数据类型名和约束名只提供给有限的几种错误类型;请参考附录 A。前端不应当假设任何一个这些域的出现会保证其他域的出现。核心错误资源会看到上面提示的相互关系,但是用户定义的函数可能会以其他方式使用这些域。同样的道理,客户端不应该假设这些域表示当前数据库中同一时期的对象。
客户端负责格式化要显示的信息以符合需要;特别是它应该根据需要断开长的行。在错误消息域里出现的新行字符应该被当作一个分段的符号,而不是换行。
Modeline and Notes { vim: set sw=4 ts=4 sts=4 et tw=78 foldmarker={,} foldlevel=0 foldmethod=marker spell:__ _ ______ _...
atom-minify(CSS/JS压缩神器)简介对于接触前端的小伙伴们,为了优化肯定是想尽办法的。atom 丰富的拓展接口,让 atom 变得更加强...
颜色打印可以增加日志的可查看性,打印日志时,会将错误等级文字通过添加字体颜色的方式突出显示。效果示例package mainimport (...
框架校验组件内置了数十项常用的校验规则。校验规则涉及到联合校验的场景时,规则中关联的参数名称会自动按照不区分大小写且忽略...
基本介绍大家也许已经注意到,当我们给定一个struct时,我们的规则只能对其中的键值或者属性进行校验,如果我们想要通过规则...
容器部署即使用docker化部署golang应用程序,这是在云服务时代最流行的部署方式,也是最推荐的部署方式。在以下我们的示例中...
GoFrameORM组件针对于struct内嵌结构提供了良好的支持,包括参数传递、结果处理。例如:type Base struct {Uidint `orm:...