pg_class 记载表和几乎所有有 字段或者是那些类似表的东西.包括索引(不过还要参阅 pg_index),序列,视图和一些特殊关系类型; 参阅 relkind。 在下面,当我们指所有这些对象的时候我们说 "relations"(关系). 不是所有字段对所有关系类型都有意义.
Table 3-9. pg_class 字段
名字 | 类型 | 引用 | 描述 |
---|---|---|---|
relname | name | 表,索引,视图等的名字. | |
relnamespace | oid | pg_namespace.oid | 包含这个关系的名字空间的 OID |
reltype | oid | pg_type.oid | 对应这个表的数据类型(索引为零,它们没有pg_type记录)。 |
relowner | int4 | pg_shadow.usesysid | 关系所有者 |
relam | oid | pg_am.oid | 如果元组是索引,那么就是所用的访问模式(B-tree,hash,等等) |
relfilenode | oid | 这个关系在磁盘上的文件的名字,如果没有则为 0 | |
relpages | int4 | 以页(大小为BLCKSZ)的此表在磁盘上的形式的大小. 它只是规划器用的一个近似值,是由 VACUUM, ANALYZE,和 CREATE INDEX 更新. | |
reltuples | float4 | 表中元组的数目.只是规划器使用的一个估计值,由 VACUUM,ANALYZE,和CREATE INDEX 更新. | |
reltoastrelid | oid | pg_class.oid | 与此表关联的TOAST表的OID,如果没有为0. TOAST 表在一个从属表里"离线"存储大字段. |
reltoastidxid | oid | pg_class.oid | 对于TOAST表是它的索引的 OID,如果不是TOAST表则为 0 |
relhasindex | bool | 如果它是一个表而且至少有一个索引,则为真。 它是由 CREATE INDEX 设置的,但 DROP INDEX 不会立即将它清除。 如果 VACUUM 发现一个表没有索引,那么它清理 relhasindex。 | |
relisshared | bool | 如果该表在整个集群中由所有数据库共享则为真. 只有某些系统表(比如 pg_database) 是共享的. | |
relkind | char | 'r' = 普通表,'i' = 索引,'S' = 序列,'v' = 视图, 'c' = 复合类型,'s' = 特殊,'t' = TOAST表 | |
relnatts | int2 | 关系中用户字段数目(除了系统字段以外). 在 pg_attribute 里肯定有相同数目对应元组. 又见 pg_attribute.attnum. | |
relchecks | int2 | 表里的检查约束的数目;参阅 pg_constraint 表 | |
reltriggers | int2 | 表里的触发器的数目;参阅 pg_trigger 表 | |
relukeys | int2 | 未用 (不是唯一键字的数目) | |
relfkeys | int2 | 未用 (不是表中外键的数目) | |
relrefs | int2 | 未用 | |
relhasoids | bool | 如果我们为关系中每行都生成一个 OID 则为真。 | |
relhaspkey | bool | 如果这个表有一个(或者曾经有一个)主键,则为真。 | |
relhasrules | bool | 表有规则;参阅 pg_rewrite 表 | |
relhassubclass | bool | 至少有一个表继承这个表 | |
relacl | aclitem[] | 访问权限.参阅 GRANT 和 REVOKE 的描述获取详细信息. |