| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 43. 系統表 | Fast Forward | Next |
pg_attribute 表 存儲關于表的字段的信息。數據庫裡每個表的每個字段都在 pg_attribute 裡有一行。 (還有用于索引和其它對象的屬性元組,見 pg_class。)
術語 屬性 等效于 列/字段,使用它是歷史原因。
Table 43-7. pg_attribute 字段
| 名字 | 類型 | 引用 | 描述 |
|---|---|---|---|
| attrelid | oid | pg_class.oid | 此列/字段所屬的表 |
| attname | name | 字段名字 | |
| atttypid | oid | pg_type.oid | 這個字段的數據類型 |
| attstattarget | int4 | attstattarget 控制 ANALYZE 為這個字段積累的統計細節的級別. 零值表示不收集統計信息。負數表示使用系統缺省的統計對象。 正數值的確切信息是和數據類型相關的。 對于標量數據類型,attstattarget 既是要收集的"最常用數值"的目標數目,也是要創建的 柱狀圖的目標數量。 | |
| attlen | int2 | 是本字段類型 pg_type.typlen 的拷貝。 | |
| attnum | int2 | 字段數目。普通字段是從 1 開始計數的。系統字段, 比如 oid, 有(任意)正數。 | |
| attndims | int4 | 如果該字段是數組,那麼是維數,否則是 0。 (目前,一個數組的維數並未強制,因此任何非零值都表示 "這是一個數組"。) | |
| attcacheoff | int4 | 在磁盤上總是 -1,但是如果裝載入內存中的行描述器中, 它可能會被更新以緩衝在行中字段的偏移量。 | |
| atttypmod | int4 | atttypmod 元組在創建表的時候 提供的類型相關的數據(比如,一個 varchar 字段的最大長度)。 它傳遞給類型相關的輸入和長度轉換函數當做第三個參數。 其值對那些不需要 atttypmod 的類型而言通常為 -1。 | |
| attbyval | bool | 通常是這個字段類型的 pg_type.typbyval 的拷貝。 | |
| attstorage | char | 這個字段的類型的 pg_type.typstorage 的拷貝。對于可壓縮的數據類型(TOAST),這個字段可以在字段創建之後改變, 以便于控制存儲策略。 | |
| attisset | bool | 如果為真,這個字段是一個結果集。這種情況下,在該字段真正存儲的是 在 pg_proc 表裡的一條行的 OID。 pg_proc 那條元組包含定義這個結果集的查詢字串。 - 也就是說,那條能夠返回這個結果集的查詢。 所以 atttypid (見上面) 指向這個查詢返回的類型,但是這個字段的實際長度是一個 oid 的長度(尺存)。--- 至少理論如此。 不過這些東西現在可能已經相當殘破了。 | |
| attalign | char | 這個字段的類型的 pg_type.typalign 的拷貝 | |
| attnotnull | bool | 這代表一個非空約束。我們可以改變這個字段以打開或者關閉這個約束。 | |
| atthasdef | bool | 這個字段有一個缺省值,此時它對應 pg_attrdef 表裡實際定義此值的記錄。 | |
| attisdropped | bool | 這個字段已經被刪除了,不再有效。一個已經刪除的字段物理上仍然存在表中, 但會被分析器忽略,因此不能再通過SQL訪問。 | |
| attislocal | bool | 這個字段是局部定義在關系中的。請注意一個字段可以同時是局部定義 和繼承的。 | |
| attinhcount | int4 | 這個字段所擁有的直接祖先的個數。如果一個字段的祖先個數非零, 那麼它就不能被刪除或重命名。 |