©
This document uses PHP Chinese website manual Release
pg_class表记载表和几乎所有有字段或者是那些类似表的东西。 包括索引(不过还要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型; 参阅relkind。在下面,当指所有这些对象的时候说"关系"。 不是所有字段对所有关系类型都有意义。
Table 45-11. pg_class Columns
名称 | 类型 | 引用 | 描述 |
---|---|---|---|
relname | name | 表、索引、视图等的名字。 | |
relnamespace | oid | pg_namespace.oid | 包含这个关系的名字空间(模式)的OID |
reltype | oid | pg_type.oid | 对应这个表的行类型的数据类型(索引为零,它们没有pg_type记录)。 |
reloftype | oid | pg_type.oid | 对于类型表,复合类型的OID,所有其他关系为零。 |
relowner | oid | pg_authid.oid | 关系所有者 |
relam | oid | pg_am.oid | 如果行是索引,那么就是所用的访问模式(B-tree, hash 等等) |
relfilenode | oid | 这个关系在磁盘上的文件名,零表示这一点 是一个"映射"关系由低层次的状态确定的磁盘文件的名称。 | |
reltablespace | oid | pg_tablespace.oid | 这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。 如果关系在磁盘上没有文件,则这个字段没有什么意义。 |
relpages | int4 | 以页(大小为BLCKSZ)的此表在磁盘上的形式的大小。它只是规划器用的一个估计值, 是由VACUUM, ANALYZE和几个DDL命令,比如CREATE INDEX更新。 | |
reltuples | float4 | 表中行数。只是规划器使用的一个估计值,由VACUUM, ANALYZE和几个DDL命令,比如CREATE INDEX更新。 | |
reltoastrelid | oid | pg_class.oid | 与此表关联的TOAST表的OID,如果没有为0。TOAST表在一个从属表里"离线"存储大字段。 |
reltoastidxid | oid | pg_class.oid | 对于TOAST表是它的索引的OID,如果不是TOAST表则为0 |
relhasindex | bool | 如果它是一个表而且至少有(或者最近有过)一个索引,则为真。 | |
relisshared | bool | 如果该表在整个集群中由所有数据库共享则为真。只有某些系统表(比如pg_database)是共享的。 | |
relistemp | bool | 结果是真,如果表是一个临时关系。如果这样,仅创建会话的能安全进入它的内容。 | |
relkind | char | r = 普通表, i = 索引, S = 序列, v = 视图, c = 复合类型, t = TOAST表 | |
relnatts | int2 | 关系中用户字段数目(除了系统字段以外)。在pg_attribute里肯定有相同数目对应行。 又见pg_attribute.attnum | |
relchecks | int2 | 表里的检查约束的数目;参阅pg_constraint表 | |
relhasoids | bool | 如果为关系中每行都生成一个OID则为真 | |
relhaspkey | bool | 如果这个表有一个(或者曾经有一个)主键,则为真。 | |
relhasexclusion | bool | 一个表,如果表中有(或曾经)任何排斥约束则为真;一个索引,如果索引支持排斥约束则为真。 | |
relhasrules | bool | 如表有规则就为真;参阅pg_rewrite表 | |
relhastriggers | bool | 表里有(或者曾经有一个)触发器则为TRUE;参阅pg_trigger 表 | |
relhassubclass | bool | 如果有(或者曾经有)任何继承的子表,则为真。 | |
relfrozenxid | xid | 该表中所有在这个之前的事务ID已经被一个固定的("冻结")事务ID替换。 这用于跟踪该表是否需要为了防止事务ID重叠或者允许收缩pg_clog而进行清理。 如果该关系不是表,则为零(InvalidTransactionId)。 | |
relacl | aclitem[] | 访问权限。参阅GRANT和REVOKE获取详细信息。 | |
reloptions | text[] | 访问方法特定的选项,使用"keyword=value"格式的字符串 |
几个pg_class布尔标志保持 懒散:他们都保证是真的,如果这是正确的状态,当条件不再为真,但 可能不能立即重置为假。比如,relhasindex通过CREATE INDEX设置,但是 从来没有通过DROP INDEX清除它。而是,如果发现表中没有索引,VACUUM清除relhasindex 。这种安排避免了竞争条件并且提高并发性。