<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 47.51\. `pg_type` `pg_type`存儲有關數據類型的信息。基本類型和枚舉類型(標量類型)是用 [CREATE TYPE](#calibre_link-100)創建的,域是使用[CREATE DOMAIN](#calibre_link-567)創建的。 同時還為數據庫中每個表自動創建一個復合類型,以表示該表的行結構。還可以用 `CREATE TYPE AS`創建復合類型。 **Table 47-51\. `pg_type` 字段** | 名字 | 類型 | 引用 | 描述 | | --- | --- | --- | --- | | `oid` | `oid` | 行標識符(隱藏屬性;必須明確選擇) | | `typname` | `name` | 數據類型名 | | `typnamespace` | `oid` | `pg_namespace`.oid | 包含這個類型的名字空間的OID | | `typowner` | `oid` | `pg_authid`.oid | 該類型的所有者 | | `typlen` | `int2` | 對于定長類型是該類型內部表現形式的字節數目。對于變長類型是負數。 -1 表示一種"變長"類型(有長度字屬性的數據), -2 表示這是一個 NULL 結尾的 C 字符串。 | | `typbyval` | `bool` | 判斷內部過程傳遞這個類型的數值時是通過傳值還是傳引用。 如果該類型不是 1, 2, 4, 8 字節長將只能按引用傳遞,因此 typbyval 最好是假。 即使可以傳值,typbyval 也可以為假。 | | `typtype` | `char` | 對于基礎類型是`b`,對于復合類型是`c` (比如,一個表的行類型)。對于域類型是`d`,對于枚舉類型是`e`, 對于偽類型是`p`,對于范圍類型是`r`。 又見`typrelid`和`typbasetype`。 | | `typcategory` | `char` | `typcategory`是數據類型的任意分類, 該數據類型被觸發器用來決定哪種隱式轉換應該是"首選"。 參閱[Table 47-52](#calibre_link-1465)。 | | `typispreferred` | `bool` | 如果類型在它的`typcategory` 里是首選轉換目標則為真。 | | `typisdefined` | `bool` | 如果定義了類型則為真,如果是一種尚未定義的類型的占位符則為假。如果為假, 那么除了該類型名稱,名字空間,和 OID 之外沒有可靠的信息。 | | `typdelim` | `char` | 當分析數組輸入時,分隔兩個此類型數值的字符。請注意該分隔符是與數組元素數據類型相關聯的, 而不是和數組數據類型關聯。 | | `typrelid` | `oid` | `pg_class`.oid | 如果是復合類型(見`typtype`)那么這個字段指向`pg_class` 中定義該表的行。對于自由存在的復合類型,`pg_class`記錄并不表示一個表, 但是總需要它來查找該類型連接的`pg_attribute`記錄。對于非復合類型為零。 | | `typelem` | `oid` | `pg_type`.oid | 如果不為 0 ,那么它標識`pg_type`里面的另外一行。 當前類型可以像一個數組產生類型為`typelem`的值一樣當做下標。 一個"真正的"數組類型是變長的(`typlen` = -1), 但是一些定長的(`typlen` &gt; 0)類型也擁有非零的`typelem` (比如`name`和`point`)。如果一個定長類型擁有一個`typelem`, 那么他的內部形式必須是`typelem`數據類型的某個數目的個數值, 不能有其它數據。變長數組類型有一個該數組子過程定義的頭(文件)。 | | `typarray` | `oid` | `pg_type`.oid | 如果`typarray`非零,那么它在`pg_type` 里定義另外一行,該行是將這個類型作為元素的"真正的"數組類型。 | | `typinput` | `regproc` | `pg_proc`.oid | 輸入轉換函數(文本格式) | | `typoutput` | `regproc` | `pg_proc`.oid | 輸出轉換函數(文本格式) | | `typreceive` | `regproc` | `pg_proc`.oid | 輸入轉換函數(二進制格式),如果沒有則為 0 | | `typsend` | `regproc` | `pg_proc`.oid | 輸出轉換函數(二進制格式),如果沒有則為 0 | | `typmodin` | `regproc` | `pg_proc`.oid | 類型修飾符輸入函數,如果類型不支持修飾符則為0 | | `typmodout` | `regproc` | `pg_proc`.oid | 類型修飾符輸出函數,如果使用標準格式則為0 | | `typanalyze` | `regproc` | `pg_proc`.oid | 自定義的`ANALYZE`函數,如果使用標準函數,則為 0 | | `typalign` | `char` | 當存儲此類型的數值時要求的對齊性質。它應用于磁盤存儲以及該值在PostgreSQL 內部的大多數形式。如果數值是連續存放的,比如在磁盤上以完全的裸數據的形式存放時, 那么先在此類型的數據前填充空白,這樣它就可以按照要求的界限存儲。對齊引用是該序列中第一個數據的開頭。 可能的值有: * `c` = `char`對齊,也就是不需要對齊。 * `s` = `short`對齊(在大多數機器上是 2 字節) * `i` = `int`對齊(在大多數機器上是 4 字節) * `d` = `double`對齊(在大多數機器上是 8 字節,但不一定是全部) > **Note:** 對于在系統表里使用的類型,在`pg_type` 里定義的尺寸和對齊必須和編譯器在一個表示表的一行的結構里的布局一樣。 | | `typstorage` | `char` | 告訴一個變長類型(那些有`typlen` = -1的) 說該類型是否準備好應付非常規值,以及對這種類型的屬性的缺省策略是什么。可能的值有 * `p`:數值總是以簡單方式存儲 * `e`: 數值可以存儲在一個"次要"關系中(如果該關系有這么一個, 參閱`pg_class.reltoastrelid`) * `m`: 數值可以以內聯的壓縮方式存儲 * `x`: 數值可以以內聯的壓縮方式或者在"次要"表里存儲。 請注意`m`域也可以移到從屬表里存儲,但只是最后的解決方法 (`e`和`x`域先移走)。 | | `typnotnull` | `bool` | 代表在某類型上的一個 NOTNULL 約束。目前只用于域。 | | `typbasetype` | `oid` | `pg_type`.oid | 如果這是一個域(參閱`typtype`), 那么標識作為這個類型的基礎的類型。如果不是域則為零。 | | `typtypmod` | `int4` | 域使用`typtypmod`記錄要作用到它們的基礎類型上的`typmod` (如果基礎類型不使用`typmod`則為 -1)。如果這種類型不是域,那么為 -1 。 | | `typndims` | `int4` | 如果是一個域數組,那么`typndims`是數組維數的數值(也就是說, `typbasetype`是一個數組類型)。非域非數組類型為零。 | | `typcollation` | `oid` | `pg_collation`.oid | 指定類型的排序規則。如果類型不支持排序,則為0。一個支持排序的基礎類型將有 `DEFAULT_COLLATION_OID`。一個可排序類型的域可以有一些其他排序OID, 如果為該域指定了一個的話。 | | `typdefaultbin` | `pg_node_tree` | 如果為非 NULL ,那么它是該類型缺省表達式的`nodeToString()`表現形式。 目前這個字段只用于域。 | | `typdefault` | `text` | 如果某類型沒有相關缺省值,那么`typdefault`是 NULL 。如果`typdefaultbin` 不是 NULL ,那么`typdefault`必須包含一個`typdefaultbin` 代表的缺省表達式的人類可讀的版本。如果`typdefaultbin`為 NULL 但`typdefault` 不是,那么`typdefault`是該類型缺省值的外部表現形式, 可以把它交給該類型的輸入轉換器生成一個常量。 | | `typacl` | `aclitem[]` | 訪問權限;參閱[GRANT](#calibre_link-19)和[REVOKE](#calibre_link-20)獲取細節。 | [Table 47-52](#calibre_link-1465)列出了系統定義的`typcategory`的值。 任何未來添加到這個列表的也是大寫的ASCII字母。所有其他ASCII字符為用戶定義的范疇保留。 **Table 47-52\. `typcategory` 代碼** | 代碼 | 種類 | | --- | --- | | `A` | 數組類型 | | `B` | 布爾類型 | | `C` | 復合類型 | | `D` | 日期/時間類型 | | `E` | 枚舉類型 | | `G` | 幾何類型 | | `I` | 網絡地址類型 | | `N` | 數值類型 | | `P` | 偽類型 | | `R` | 范圍類型 | | `S` | 字符串類型 | | `T` | 時間間隔類型 | | `U` | 用戶定義類型 | | `V` | 位串類型 | | `X` | `未知` 類型 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看