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