?
本文檔使用 PHP中文網(wǎng)手冊 發(fā)布
The catalog pg_type stores information about data types. Base types and enum types (scalar types) are created with CREATE TYPE, and domains with CREATE DOMAIN. A composite type is automatically created for each table in the database, to represent the row structure of the table. It is also possible to create composite types with CREATE TYPE AS.
pg_type存儲有關數(shù)據(jù)類型的信息?;绢愋秃兔杜e類型(標量類型)是用CREATE TYPE創(chuàng)建的, 域是使用CREATE DOMAIN創(chuàng)建的。同時還為數(shù)據(jù)庫中每個表自動創(chuàng)建一個復合類型, 以表示該表的行結構。還可以用CREATE TYPE AS創(chuàng)建復合類型。
Table 45-44. pg_type Columns
名稱 | 類型 | 引用 | 描述 |
---|---|---|---|
typname | name | ? | 數(shù)據(jù)類型名 |
typnamespace | oid | pg_namespace.oid | 包含這個類型的名字空間的OID |
typowner | oid | pg_authid.oid | 該類型的所有者 |
typlen | int2 | ? | 對于定長類型typlen是該類型內部表現(xiàn)形式的字節(jié)數(shù)。 對于變長類型typlen是負數(shù)。 -1表示一種"變長"類型(有長度字屬性的數(shù)據(jù)), -2表示這是一個NULL結尾的C字符串。 |
typbyval | bool | ? | typbyval判斷內部過程傳遞這個類型的數(shù)值時是通過傳值還是傳引用。 如果該typlen類型不是1, 2, 4, 8字節(jié)長將只能按引用傳遞, 變長類型總是按引用。請注意typbyval可以為假,即使允許傳值。 |
typtype | char | ? | typtype 對于基礎類型是b,對于復合類型是c(比如,一個表的行類型)。 對于域類型是d,E的枚舉類型,對于偽類型是p。 還可參閱typrelid和typbasetype。 |
typcategory | char | ? | typcategory是一個使用解析器以確定其中隱含映射是"首選"的數(shù)據(jù)類型的 任意分類。參閱Table 45-45。 |
typispreferred | bool | ? | 如果類型在typcategory中是一個更好的目標則為真。 |
typisdefined | bool | ? | 如果定義了類型則為真,如果是一種尚未定義的類型的占位符則為假。 如果typisdefined為假,那么除了該類型名,命名空間,和OID之外沒有可靠的信息。 |
typdelim | char | ? | Character that separates two values of this type when parsing array input. Note that the delimiter is associated with the array element data type, not the array data type. 當分析數(shù)組輸入時,分隔兩個此類型數(shù)值的字符請注意該分隔符是與數(shù)組元素數(shù)據(jù)類型相關聯(lián)的,而不是和數(shù)組數(shù)據(jù)類型關聯(lián)。 |
typrelid | oid | pg_class.oid | 如果是復合類型(參閱typtype)那么這個字段指向pg_class中定義該表的行。對于自由存在的復合類型, pg_class記錄并不表示一個表,但是總需要它來查找該類型連接的pg_attribute記錄。對于非復合類型為零。 |
typelem | oid | pg_type.oid | 如果typelem不為0 ,那么它標識pg_type里面的另外一行。當前類型可以當做一個產(chǎn)生類型為typelem的數(shù)組來描述。 一個"真的"數(shù)組類型是變長的(typlen = -1), 但是一些定長的(typlen > 0)類型也擁有非零的typelem,比如name和point。 如果一個定長類型擁有一個typelem,那么它的內部形式必須是typelem數(shù)據(jù)類型的某個數(shù)目的數(shù)值, 不能有其它數(shù)據(jù)。變長數(shù)組類型有一個該數(shù)組子過程定義的頭(文件)。 |
typarray | oid | pg_type.oid | 如果typarray不為0, 標識pg_type的另一行, 則"true"數(shù)組類型有這種類型作為元素。 |
typinput | regproc | pg_proc.oid | 輸入轉換函數(shù)(文本格式) |
typoutput | regproc | pg_proc.oid | 輸出轉換函數(shù)(文本格式) |
typreceive | regproc | pg_proc.oid | 輸入轉換函數(shù)(二進制格式),如果沒有則為0 |
typsend | regproc | pg_proc.oid | 輸出轉換函數(shù)(二進制格式),如果沒有則為0 |
typmodin | regproc | pg_proc.oid | 類型修飾符輸入功能,如果類型不支持修飾符,則為0 |
typmodout | regproc | pg_proc.oid | 類型修飾符輸出功能,如果使用標準格式,則為0 |
typanalyze | regproc | pg_proc.oid | 自定義ANALYZE函數(shù),如果使用標準函數(shù),則為0 |
typalign | char | ? | typalign當存儲此類型的數(shù)值時要求的對齊性質。它應用于磁盤存儲以及該值在PostgreSQL內部的大多數(shù)形式。 如果數(shù)值是連續(xù)存放的,比如在磁盤上以完全的裸數(shù)據(jù)的形式存放時,那么先在此類型的數(shù)據(jù)前填充空白, 這樣它就可以按照要求的界限存儲。對齊引用是該序列中第一個數(shù)據(jù)的開頭。 可能的值有:
|
typstorage | char | ? |
typstorage告訴一個變長類型(那些有typlen = -1)的)說該類型是否準備好應付缺省規(guī)值, 以及對這種屬性的類型的缺省策略是什么??赡艿闹涤?
請注意m列也可以移到從屬表里存儲,但只是最后的解決方法(e and x列先移走)。 |
typnotnull | bool | ? | typnotnull表示在某類型上的一個非空約束。只用于域。 |
typbasetype | oid | pg_type.oid | 如果這是一個域(參閱typtype),那么typbasetype該標識作為這個類型的基礎的類型。如果不是域類型則為零。 |
typtypmod | int4 | ? | 域使用typtypmod記錄要作用到它們的基礎類型上的typmod(如果基礎類型不使用typmod,則為-1)。 如果這種類型不是域,那么為-1 。 |
typndims | int4 | ? | typndims是域的數(shù)組維數(shù),其是一個數(shù)組(也就是說,typbasetype是一個數(shù)組類型; 域的typelem將匹配基本類型的typelem)。非域非數(shù)組域為零。 |
typdefaultbin | text | ? |
如果typdefaultbin為非NULL,那么它是該類型缺省表達式的 |
typdefault | text | ? |
如果某類型沒有相關缺省值,那么typdefault是 NULL。如果typdefaultbin不是NULL , 那么typdefault必須包含一個typdefaultbin代表的缺省表達式的人類可讀的版本。 如果typdefaultbin為NULL,但typdefault不是,那么typdefault是該類型缺省值的外部表現(xiàn)形式, 可以把它交給該類型的輸入轉換器生成一個常量。 |
Table 45-45列出了 typcategory系統(tǒng)定義的值。 任何未來增加的列表也可以是ASCII字母大寫。保留所有其他的ASCII字符用戶定義的類別。
Table 45-45. typcategory Codes
編碼 | 類別 |
---|---|
A | 數(shù)組類型 |
B | 布爾類型 |
C | 復合類型 |
D | 日期/時間類型 |
E | 枚舉類型 |
G | 幾何類型 |
I | 網(wǎng)絡地址類型 |
N | 數(shù)值類型 |
P | 偽類型 |
S | 字符串類型 |
T | 時間跨度類型 |
U | 用戶定義的類型 |
V | 位字符串類型 |
X | 未知類型 |