?
This document uses PHP Chinese website manual Release
pg_attribute表存儲關(guān)于表的字段的信息。數(shù)據(jù)庫里每個(gè)表的每個(gè)字段都在pg_attribute里有一行。 還有用于索引,以及所有在pg_class里有記錄的對象。
術(shù)語屬性等效于列/字段,使用它是歷史原因。
Table 45-7. pg_attribute Columns
名稱 | 類型 | 引用 | 描述 |
---|---|---|---|
attrelid | oid | pg_class.oid | 此字段所屬的表 |
attname | name | ? | 字段名 |
atttypid | oid | pg_type.oid | 這個(gè)字段的數(shù)據(jù)類型 |
attstattarget | int4 | ? | attstattarget控制ANALYZE為這個(gè)字段積累的統(tǒng)計(jì)細(xì)節(jié)的級別。ANALYZE。零值表示不收集統(tǒng)計(jì)信息。 負(fù)數(shù)表示使用系統(tǒng)缺省的統(tǒng)計(jì)對象。正數(shù)值的確切信息是和數(shù)據(jù)類型相關(guān)的。 對于標(biāo)量數(shù)據(jù)類型,attstattarget 既是要收集的"最常用數(shù)值"的目標(biāo)數(shù)目, 也是要?jiǎng)?chuàng)建的柱狀圖的目標(biāo)數(shù)量。 |
attlen | int2 | ? | 本字段類型的pg_type.typlen的副本 |
attnum | int2 | ? | 字段數(shù)目。普通字段是從1開始計(jì)數(shù)的。系統(tǒng)字段(比如oid)有(任意)負(fù)數(shù)。 |
attndims | int4 | ? | 如果該字段是數(shù)組,那么是維數(shù),否則是0。(目前,一個(gè)數(shù)組的維數(shù)并未強(qiáng)制, 因此任何非零值都表示"這是一個(gè)數(shù)組")。 |
attcacheoff | int4 | ? | 在磁盤上的時(shí)候總是-1,但是如果加載入內(nèi)存中的行描述器中,它可能會(huì)被更新以緩沖在行中字段的偏移量。 |
atttypmod | int4 | ? | atttypmod 記錄創(chuàng)建新表時(shí)支持的類型特定的數(shù)據(jù)(比如一個(gè)varchar字段的最大長度)。 它傳遞給類型相關(guān)的輸入和長度轉(zhuǎn)換函數(shù)當(dāng)做第三個(gè)參數(shù)。 其值對那些不需要atttypmod的類型通常為-1。 |
attbyval | bool | ? | 這個(gè)字段類型的pg_type.typbyval的副本。 |
attstorage | char | ? | 這個(gè)字段的類型的pg_type.typstorage的副本。對于可壓縮的數(shù)據(jù)類型(TOAST), 這個(gè)字段可以在字段創(chuàng)建之后改變,以便于控制存儲策略。 |
attalign | char | ? | 這個(gè)字段類型的pg_type.typalign的副本。 |
attnotnull | bool | ? | 這代表一個(gè)非空約束??梢愿淖冞@個(gè)字段來打開或者關(guān)閉這個(gè)約束。 |
atthasdef | bool | ? | 這個(gè)字段有一個(gè)缺省值,此時(shí)它對應(yīng)pg_attrdef表里實(shí)際定義此值的記錄。 |
attisdropped | bool | ? | 已經(jīng)刪除了這個(gè)字段,不再有效。一個(gè)已經(jīng)刪除的字段物理上仍然存在表中, 但會(huì)被分析器忽略,因此不能再通過SQL訪問。 |
attislocal | bool | ? | 這個(gè)字段是局部定義在關(guān)系中的。請注意一個(gè)字段可以同時(shí)是局部定義和繼承的。 |
attinhcount | int4 | ? | 這個(gè)字段所擁有的直接祖先的個(gè)數(shù)。如果一個(gè)字段的祖先個(gè)數(shù)非零,那么它就不能被刪除或重命名。 |
attacl | aclitem[] | ? | 列級訪問權(quán)限 如果有任何特別授權(quán)在列上。 |
attoptions | text[] | ? | 屬性級別選項(xiàng),如"keyword=value"字符串 |
在一個(gè)已刪除字段的pg_attribute記錄里,atttypid將被重置為零, 但是attlen和其它從pg_type拷貝的仍然有效。這么安排是為了對付后來刪除的字段的數(shù)據(jù)類型也刪除的情況, 因?yàn)檫@個(gè)時(shí)候不再有pg_type行了。attlen和其它字段可以用于解析表中一行內(nèi)容。