?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
pg_class表記載表和幾乎所有有字段或者是那些類似表的東西。 包括索引(不過還要參閱pg_index)、序列、視圖、復(fù)合類型和一些特殊關(guān)系類型; 參閱relkind。在下面,當(dāng)指所有這些對(duì)象的時(shí)候說"關(guān)系"。 不是所有字段對(duì)所有關(guān)系類型都有意義。
Table 45-11. pg_class Columns
名稱 | 類型 | 引用 | 描述 |
---|---|---|---|
relname | name | ? | 表、索引、視圖等的名字。 |
relnamespace | oid | pg_namespace.oid | 包含這個(gè)關(guān)系的名字空間(模式)的OID |
reltype | oid | pg_type.oid | 對(duì)應(yīng)這個(gè)表的行類型的數(shù)據(jù)類型(索引為零,它們沒有pg_type記錄)。 |
reloftype | oid | pg_type.oid | 對(duì)于類型表,復(fù)合類型的OID,所有其他關(guān)系為零。 |
relowner | oid | pg_authid.oid | 關(guān)系所有者 |
relam | oid | pg_am.oid | 如果行是索引,那么就是所用的訪問模式(B-tree, hash 等等) |
relfilenode | oid | ? | 這個(gè)關(guān)系在磁盤上的文件名,零表示這一點(diǎn) 是一個(gè)"映射"關(guān)系由低層次的狀態(tài)確定的磁盤文件的名稱。 |
reltablespace | oid | pg_tablespace.oid | 這個(gè)關(guān)系存儲(chǔ)所在的表空間。如果為零,則意味著使用該數(shù)據(jù)庫(kù)的缺省表空間。 如果關(guān)系在磁盤上沒有文件,則這個(gè)字段沒有什么意義。 |
relpages | int4 | ? | 以頁(yè)(大小為BLCKSZ)的此表在磁盤上的形式的大小。它只是規(guī)劃器用的一個(gè)估計(jì)值, 是由VACUUM, ANALYZE和幾個(gè)DDL命令,比如CREATE INDEX更新。 |
reltuples | float4 | ? | 表中行數(shù)。只是規(guī)劃器使用的一個(gè)估計(jì)值,由VACUUM, ANALYZE和幾個(gè)DDL命令,比如CREATE INDEX更新。 |
reltoastrelid | oid | pg_class.oid | 與此表關(guān)聯(lián)的TOAST表的OID,如果沒有為0。TOAST表在一個(gè)從屬表里"離線"存儲(chǔ)大字段。 |
reltoastidxid | oid | pg_class.oid | 對(duì)于TOAST表是它的索引的OID,如果不是TOAST表則為0 |
relhasindex | bool | ? | 如果它是一個(gè)表而且至少有(或者最近有過)一個(gè)索引,則為真。 |
relisshared | bool | ? | 如果該表在整個(gè)集群中由所有數(shù)據(jù)庫(kù)共享則為真。只有某些系統(tǒng)表(比如pg_database)是共享的。 |
relistemp | bool | ? | 結(jié)果是真,如果表是一個(gè)臨時(shí)關(guān)系。如果這樣,僅創(chuàng)建會(huì)話的能安全進(jìn)入它的內(nèi)容。 |
relkind | char | ? | r = 普通表, i = 索引, S = 序列, v = 視圖, c = 復(fù)合類型, t = TOAST表 |
relnatts | int2 | ? | 關(guān)系中用戶字段數(shù)目(除了系統(tǒng)字段以外)。在pg_attribute里肯定有相同數(shù)目對(duì)應(yīng)行。 又見pg_attribute.attnum |
relchecks | int2 | ? | 表里的檢查約束的數(shù)目;參閱pg_constraint表 |
relhasoids | bool | ? | 如果為關(guān)系中每行都生成一個(gè)OID則為真 |
relhaspkey | bool | ? | 如果這個(gè)表有一個(gè)(或者曾經(jīng)有一個(gè))主鍵,則為真。 |
relhasexclusion | bool | ? | 一個(gè)表,如果表中有(或曾經(jīng))任何排斥約束則為真;一個(gè)索引,如果索引支持排斥約束則為真。 |
relhasrules | bool | ? | 如表有規(guī)則就為真;參閱pg_rewrite表 |
relhastriggers | bool | ? | 表里有(或者曾經(jīng)有一個(gè))觸發(fā)器則為TRUE;參閱pg_trigger 表 |
relhassubclass | bool | ? | 如果有(或者曾經(jīng)有)任何繼承的子表,則為真。 |
relfrozenxid | xid | ? | 該表中所有在這個(gè)之前的事務(wù)ID已經(jīng)被一個(gè)固定的("凍結(jié)")事務(wù)ID替換。 這用于跟蹤該表是否需要為了防止事務(wù)ID重疊或者允許收縮pg_clog而進(jìn)行清理。 如果該關(guān)系不是表,則為零(InvalidTransactionId)。 |
relacl | aclitem[] | ? | 訪問權(quán)限。參閱GRANT和REVOKE獲取詳細(xì)信息。 |
reloptions | text[] | ? | 訪問方法特定的選項(xiàng),使用"keyword=value"格式的字符串 |
幾個(gè)pg_class布爾標(biāo)志保持 懶散:他們都保證是真的,如果這是正確的狀態(tài),當(dāng)條件不再為真,但 可能不能立即重置為假。比如,relhasindex通過CREATE INDEX設(shè)置,但是 從來沒有通過DROP INDEX清除它。而是,如果發(fā)現(xiàn)表中沒有索引,VACUUM清除relhasindex 。這種安排避免了競(jìng)爭(zhēng)條件并且提高并發(fā)性。