返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

43.7. pg_attribute

发布于 2019-09-30 03:12:40 字数 3006 浏览 1211 评论 0 收藏 0

pg_attribute 表存储关于表的字段的信息。数据库里每个表的每个字段都在 pg_attribute 里有一行。还有用于索引,以及所有在 pg_class 里有记录的对象。

术语属性等效于列/字段,使用它是历史原因。

表43-7. pg_attribute 字段

名字类型引用描述
attrelidoidpg_class.oid此字段所属的表
attnamename字段名字
atttypidoidpg_type.oid这个字段的数据类型
attstattargetint4控制 ANALYZE 为这个字段积累的统计细节的级别。零值表示不收集统计信息。负数表示使用系统缺省的统计对象。正数值的确切信息是和数据类型相关的。对于标量数据类型,attstattarget 既是要收集的"最常用数值"的目标数目,也是要创建的柱状图的目标数量。
attlenint2是本字段类型的 pg_type.typlen 的拷贝
attnumint2字段数目。普通字段是从 1 开始计数的。系统字段(比如 oid)有(任意)正数。
attndimsint4如果该字段是数组,那么是维数,否则是 0 。目前,一个数组的维数并未强制,因此任何非零值都表示"这是一个数组"。
attcacheoffint4在磁盘上的时候总是 -1 ,但是如果加载入内存中的行描述器中,它可能会被更新以缓冲在行中字段的偏移量。
atttypmodint4记录创建新表时支持的类型特定的数据(比如一个 varchar 字段的最大长度)。它传递给类型相关的输入和长度转换函数当做第三个参数。其值对那些不需要 atttypmod 的类型通常为 -1 。
attbyvalbool这个字段类型的 pg_type.typbyval 的拷贝。
attstoragechar这个字段的类型的 pg_type.typstorage 的拷贝。对于可压缩的数据类型(TOAST),这个字段可以在字段创建之后改变,以便于控制存储策略。
attalignchar这个字段类型的 pg_type.typalign 的拷贝
attnotnullbool这代表一个非空约束。可以改变这个字段以打开或者关闭这个约束。
atthasdefbool这个字段有一个缺省值,此时它对应 pg_attrdef 表里实际定义此值的记录。
attisdroppedbool这个字段已经被删除了,不再有效。一个已经删除的字段物理上仍然存在表中,但会被分析器忽略,因此不能再通过 SQL 访问。
attislocalbool这个字段是局部定义在关系中的。请注意一个字段可以同时是局部定义和继承的。
attinhcountint4这个字段所拥有的直接祖先的个数。如果一个字段的祖先个数非零,那么它就不能被删除或重命名。

在一个已被删除字段的 pg_attribute 记录里,atttypid 将被重置为零,但是 attlen 和其它从 pg_type 拷贝的仍然有效。这么安排是为了对付后来被删除的字段的数据类型也被删除的情况,因为这个时候不再有 pg_type 行了。attlen 和其它字段可以用于解析表中一行内容。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文