pg_class
记载表和几乎所有有
字段或者是那些类似表的东西.包括索引(不过还要参阅
pg_index
),序列,视图和一些特殊关系类型.
在下面,当我们指所有这些对象的时候我们说
"relations"
.
不是所有字段对所有关系类型都有意义.
Table 3-5. pg_class 字段
名字 |
类型 |
引用 |
描述 |
relname |
name
|
|
表,索引,视图等的名字. |
reltype |
oid
|
pg_type.oid |
对应这个表的数据类型(没有用,只是为系统表设置)
|
relowner |
int4
|
pg_shadow.usesysid |
关系所有者 |
relam |
oid
|
pg_am.oid |
如果元组是索引,那么就是所用的访问模式(btree,hash,等等) |
relfilenode |
oid
|
|
这个关系在磁盘上的文件的名字 |
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,如果没有则为0 |
relhasindex |
bool
|
|
如果它是一个表而且至少有一个索引,则为真 |
relisshared |
bool
|
|
如果该表在整个集群中由所有数据库共享则为真.
只有某些系统表(比如
pg_database
)
是共享的.
|
relkind |
char
|
|
'r' = 普通表,'i' = 索引,'S' = 序列,'v' = 视图,
's' = 特殊,'t' = 从属TOAST表
|
relnatts |
int2
|
|
关系中字段数目,除了系统字段以外.
在
pg_attribute
里肯定有许多对应元组.
又见
pg_attribute
.
attnum
.
|
relchecks |
int2
|
|
表里的检查约束的数目;参阅
pg_relcheck
表
|
reltriggers |
int2
|
|
表里的触发器的数目;参阅
pg_trigger
表
|
relukeys |
int2
|
|
未用 (
不是
唯一键字或者其它什么东西的数目) |
relfkeys |
int2
|
|
表中外键的数目 |
relhaspkey |
bool
|
|
未用(不,它不是说这个表是否有一个主键.它真的没有用.)
|
relhasrules |
bool
|
|
表有规则;参阅
pg_rewrite
表 |
relhassubclass |
bool
|
|
至少有一个表继承这个表 |
relacl |
aclitem[]
|
|
访问权限.参阅
GRANT
和
REVOKE
的描述获取详细信息.
|
|