pg_attribute
#目录 pg_attribute
存储关于表列的信息。数据库中每个表的每一列都将对应于 pg_attribute
中的一行。 (索引以及所有具有 pg_class
条目的对象也将有属性条目。)
术语属性等同于列,出于历史原因而使用。
表 51.7. pg_attribute
列
列类型 描述 |
---|
此列所属的表 |
列名 |
此列的数据类型 (已删除列为零) |
此列类型 |
列号。普通列从 1 开始编号。系统列,如 |
在存储中始终为 -1,但在加载到内存中的行描述符中,这可能会更新以缓存属性在行中的偏移量 |
|
维度数,如果列为数组类型;否则为 0。 (目前,数组的维度数不受强制,因此任何非零值实际上都意味着 “它是一个数组”。) |
此列类型 |
此列类型 |
通常是此列类型 |
列的当前压缩方法。通常,这为 |
这表示一个非空约束。 |
此列具有默认表达式或生成表达式,在这种情况下, |
此列具有一个值,该值在列完全缺少于行时使用,例如在创建行后添加具有非易失性 |
如果为零字节 ( |
如果为零字节 ( |
此列已删除,不再有效。已删除的列在物理上仍然存在于表中,但会被解析器忽略,因此无法通过 SQL 访问。 |
此列是在关系中本地定义的。请注意,一个列可以同时被本地定义和继承。 |
此列的直接祖先数量。具有非零祖先数量的列不能删除或重命名。 |
列的定义排序规则,如果列不是可排序规则的数据类型,则为零 |
|
列级访问权限 (如果有的话) 已专门授予此列 |
属性级选项,以 “关键字=值” 字符串形式 |
属性级外部数据包装器选项,以 “关键字=值” 字符串形式 |
此列具有一个包含一个元素的数组,该元素包含在列完全缺少于行时使用的值,例如在创建行后添加具有非易失性 |
在已删除列的 pg_attribute
条目中,atttypid
重置为零,但从 pg_type
复制的 attlen
和其他字段仍然有效。此安排需要处理已删除列的数据类型后来被删除的情况,因此不再有 pg_type
行。可以使用 attlen
和其他字段来解释表行中的内容。
如果您在文档中看到任何不正确的内容、与您对特定功能的体验不符或需要进一步澄清,请使用 此表格 报告文档问题。