↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

Wiki / 系统目录

pg_class

目录pg_class描述了表以及其他具有列或在其他方面与表类似的对象。这包括索引(但请参见pg_index)、序列(但请参见pg_sequence)、视图、物化视图、复合类型和TOAST表;请参见relkind。在下面,当我们指的是所有这些类型的对象时,我们称之为“关系(relations)”。并非所有pg_class的列对所有关系类型都有意义。

英文手册覆盖始于 PostgreSQL 7.4. 来源历史与运行验证各自保留独立版本边界。

当前阅读 PG 18·选择有来源记录的版本

kind
catalog
lang
en
measured attributes
true
metadata release
18.6
runtime verified
false
source
english-manual

版本定义 PG 18

目录pg_class描述了表以及其他具有列或在其他方面与表类似的对象。这包括索引(但请参见pg_index)、序列(但请参见pg_sequence)、视图、物化视图、复合类型和TOAST表;请参见relkind。在下面,当我们指的是所有这些类型的对象时,我们称之为“关系(relations)”。并非所有pg_class的列对所有关系类型都有意义。

目录列

列类型可空性描述
oidoid非空行标识符
relnamename非空表、索引、视图等的名字
relnamespaceoid非空包含该关系的名字空间的OID
reltypeoid非空与此表的行类型对应的数据类型的 OID(如有);索引、序列和 TOAST 表没有pg_type项,此值为零
reloftypeoid非空对于类型化表,为底层复合类型的 OID;对于其他所有关系则为零
relowneroid非空关系的拥有者
relamoid非空用于访问该表或索引的访问方法。如果该关系是序列或者没有磁盘文件,则此字段无意义;分区表除外,对于分区表,如果设置了该字段,则在创建命令未指定时,它优先于 default_table_access_method 来决定用于创建分区的访问方法。
relfilenodeoid非空该关系的磁盘文件名;零表示这是一个“映射”关系,其磁盘文件名取决于底层状态
reltablespaceoid非空存储此关系的表空间。如果为零,则表示使用数据库的默认表空间。对于没有磁盘文件的关系,此值没有意义,但分区表除外:若创建命令未指定表空间,将在此表空间中创建分区。
relpagesint4非空该表磁盘表示的尺寸,以页面计(页面尺寸为BLCKSZ)。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令(如CREATE INDEX)所更新。
reltuplesfloat4非空表中的存活行数。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令(如CREATE INDEX)所更新。如果该表从未被清理或分析,包含-1的reltuples表示行数是未知的。
relallvisibleint4非空在表的可见性映射中被标记为全可见的页数。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令,如CREATE INDEX所更新。
relallfrozenint4非空表的可见性映射中被标记为全冻结的页数。这只是一个用于触发自动清理的估计值。它也可以与 relallvisible 一起,用于安排手工清理以及调优清理冻结行为。它会被 VACUUM、ANALYZE 以及一些 DDL 命令(例如 CREATE INDEX)更新。
reltoastrelidoid非空与该表相关联的TOAST表的OID,如果没有则为零。TOAST表将大属性“行外”存储在一个二级表中。
relhasindexbool非空如果这是一个表并且其上建有(或最近建有)索引则为真
relissharedbool非空如果该表在集簇中的所有数据库间共享则为真。只有某些系统目录(如pg_database)是共享的。
relpersistencechar非空p = 永久表/序列,u = 不记录 WAL 的表/序列,t = 临时表/序列
relkindchar非空r = 普通表,i = 索引,S = 序列,t = TOAST表,v = 视图,m = 物化视图,c = 复合类型,f = 外部表,p = 分区表,I = 分区索引
relnattsint2非空关系中用户列的数量(不计系统列)。在pg_attribute中必须有这么多对应项。另请参阅pg_attribute.attnum。
relchecksint2非空表上CHECK约束的数目,参见pg_constraint目录
relhasrulesbool非空如果表有(或曾有)规则则为真,参见pg_rewrite目录
relhastriggersbool非空如果表有(或曾有)触发器则为真,参见 pg_trigger目录
relhassubclassbool非空如果表或索引有(或曾经有过)任何继承子对象或分区,则为真
relrowsecuritybool非空如果表上启用了行级安全则为真,参见 pg_policy目录
relforcerowsecuritybool非空如果行级安全(启用时)也适用于表拥有者则为真,参见 pg_policy目录
relispopulatedbool非空如果关系已被填充则为真(对于所有关系该列都为真,但对于某些物化视图却不是)
relreplidentchar非空用于形成行“复制标识”的列:d = 默认(主键,如果存在),n = 无,f = 所有列,i = 设置了indisreplident的索引(如果该索引已被删除,则效果等同于无)
relispartitionbool非空如果表或索引是一个分区,则为真
relrewriteoid非空对于在需要重写表的 DDL 操作期间写入的新关系,此字段包含原关系的 OID;其他情况下为零。该状态仅在内部可见;对于用户可见的关系,此字段应始终为零。
relfrozenxidxid非空在此之前的所有事务ID在表中已经被替换为一个永久的(“冻结的”)事务ID。这用于跟踪表是否需要被清理,以便阻止事务ID回卷或者允许pg_xact被收缩。如果该关系不是一个表则为0(InvalidTransactionId)。
relminmxidxid非空在此之前的所有多事务ID在表中已经被替换为一个事务ID。这被用于跟踪表是否需要被清理,以阻止多事务ID回卷或者允许pg_multixact被收缩。如果关系不是一个表则为0(InvalidMultiXactId)。
relaclaclitem[]可空访问权限,更多信息参见第 5.8 节
reloptionstext[]可空访问方法相关的选项,以“keyword=value”字符串形式
relpartboundpg_node_tree可空如果表是一个分区(见relispartition),则为分区边界的内部表示

比较版本

完整来源事实

runtime columns

oid, relname, relnamespace, reltype, reloftype, relowner, relam, relfilenode, reltablespace, relpages, reltuples, relallvisible, relallfrozen, reltoastrelid, relhasindex, relisshared, relpersistence, relkind, relnatts, relchecks, relhasrules, relhastriggers, relhassubclass, relrowsecurity, relforcerowsecurity, relispopulated, relreplident, relispartition, relrewrite, relfrozenxid, relminmxid, relacl, reloptions, relpartbound

来源引用

完整定义与证据 JSON

定义来源

center · PostgreSQL 18 · english-manuals:ea8872f33d2fe5c3e602b22cd56700b9d92f1a106fd1b4da3ff8e1290dd6b8cc

正文语言: zh-Hans · 2026-09-27@419045e