43.9. pg_class

pg_class 表記載表和幾乎所有有 字段或者是那些類似表的東西。包括索引(不過還要參閱 pg_index),序列,視圖和一些特殊關系類型; 參閱 relkind。 在下面,當我們指所有這些對象的時候我們說 "relations"(關系)。 不是所有字段對所有關系類型都有意義。

Table 43-9. pg_class 字段

名字類型引用描述
relnamename 表,索引,視圖等的名字。
relnamespaceoidpg_namespace.oid 包含這個關系的名字空間(模式)的 OID
reltypeoidpg_type.oid 對應這個表的數據類型(索引為零,它們沒有pg_type記錄)。
relownerint4pg_shadow.usesysid關系所有者
relamoidpg_am.oid如果元組是索引,那麼就是所用的訪問模式(B-tree,hash,等等)
relfilenodeoid 這個關系在磁盤上的文件的名字,如果沒有則為 0
relpagesint4  以頁(大小為BLCKSZ)的此表在磁盤上的形式的大小。 它只是規劃器用的一個近似值,是由 VACUUMANALYZE,和 CREATE INDEX 更新。
reltuplesfloat4  表中元組的數目。只是規劃器使用的一個估計值,由 VACUUMANALYZE,和CREATE INDEX 更新。
reltoastrelidoidpg_class.oid 與此表關聯的TOAST表的OID,如果沒有為0。 TOAST 表在一個從屬表裡"離線"存儲大字段。
reltoastidxidoidpg_class.oid對于TOAST表是它的索引的 OID,如果不是TOAST表則為 0
relhasindexbool 如果它是一個表而且至少有(或者最近有過)一個索引,則為真。 它是由CREATE INDEX設置的,但DROP INDEX不會立即將它清除。 如果VACUUM發現一個表沒有索引,那麼它清理 relhasindex
relissharedbool 如果該表在整個集群中由所有數據庫共享則為真。 只有某些系統表(比如 pg_database) 是共享的。
relkindchar  r = 普通表,i = 索引,S = 序列,v = 視圖, c = 復合類型,s = 特殊,t = TOAST表
relnattsint2  關系中用戶字段數目(除了系統字段以外)。 在 pg_attribute 裡肯定有相同數目對應行。 又見 pg_attribute.attnum.
relchecksint2  表裡的檢查約束的數目;參閱 pg_constraint
reltriggersint2  表裡的觸發器的數目;參閱 pg_trigger
relukeysint2 未用 (不是唯一鍵字的數目)
relfkeysint2 未用 (不是表中外鍵的數目)
relrefsint2 未用
relhasoidsbool  如果我們為關系中每行都生成一個 OID 則為真。
relhaspkeybool  如果這個表有一個(或者曾經有一個)主鍵,則為真。
relhasrulesbool 表有規則;參閱 pg_rewrite
relhassubclassbool 至少有一個表繼承這個表
relaclaclitem[]  訪問權限。參閱 GRANTREVOKE 的描述獲取詳細信息。