<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    zhyiwww
    用平實的筆,記錄編程路上的點點滴滴………
    posts - 536,comments - 394,trackbacks - 0

    CREATE TYPE

    Name

    CREATE TYPE — 定義一個新的基本數據類型
    CREATE TYPE typename ( INPUT = input_function, OUTPUT = output_function
          , INTERNALLENGTH = { internallength | VARIABLE }
        [ , EXTERNALLENGTH = { externallength | VARIABLE } ]
        [ , DEFAULT = "default" ]
        [ , ELEMENT = element ] [ , DELIMITER = delimiter ]
        [ , SEND = send_function ] [ , RECEIVE = receive_function ]
        [ , PASSEDBYVALUE ]
        [ , ALIGNMENT = alignment ]
        [ , STORAGE = storage ]
    )
      

    輸入

    typename

    將要創建的類型名.

    internallength

    一個文本串,說明新類型的內部長度.

    externallength

    一個文本串,說明新類型的外部(顯示)長度.

    input_function

    一個函數的名稱,由 CREATE FUNCTION創建, 將數據從外部類型轉換成內部類型.

    output_function

    一個函數的名稱,由 CREATE FUNCTION創建, 將數據從內部格式轉換成適于顯示的形式.

    element

    被創建的類型是數組;這個聲明數組元素的類型.

    delimiter

    數組的分隔字符.

    default

    該類型的缺省值.通常是省略它的,所以缺省是 NULL.

    send_function

    CREATE FUNCTION 創建的函數名,它將該類型的數據轉換成一個適合傳輸到其他機器的形式.

    receive_function

    CREATE FUNCTION 創建的函數名,將該類型從適于傳輸給其他機器的形式轉換為內部形式.

    alignment

    該數據類型的存儲對齊要求.如果聲明了,必須是 'int4' 或 'double'; 缺省是 'int4'.

    storage

    該數據類型的存儲技術.如果聲明了,必須是 'plain','external', 'extended',或 'main'; 缺省是 'plain'.

    輸出

    CREATE

    如果創建類型成功,返回此信息.

    描述

    CREATE TYPE 允許用戶在 Postgres 當前數據庫里創建一個新的用戶數據類型. 定義該類型的用戶成為其所有者. typename 是新類型的名稱而且必須在所定義的數據庫中唯一.

    CREATE TYPE 需要在定義類型之前先注冊兩個函數(用創建函數命令). 新的基本類型的形式由 input_function決定, 它將該類型的外部形式轉換成可以被對該類型操作的操作符和函數識別的形式. 自然, output_function 用做相反用途.輸入和輸出函數都必須定義成接收一個或兩個類型為 "opaque". 的參數的函數.

    新的基本數據類型可定義成為定長,這時 internallength 是一個正整數,也可以是變長的,這時Postgres 假定新類 型的格式和 Postgres 所支持的 "text" 類型是一樣的. 要指明一個類型是變長,將 internallength 設成 VARIABLE. 類似的,外部形式也用 externallength 關鍵字聲明.

    要指明一個類型是數組以及指明一個類型有數組元素. 應該使用element關鍵字.例如,定義一個4-字節整數的數組 ("int4"),聲明如下

    ELEMENT = int4

    要聲明用于這種類型數組的分隔符,可設置 delimiter 聲明分隔符.缺省的分隔符是逗號 ( ",").

    一個可選的的缺省值可用于令用戶聲明某種位模式來代表"數據不存在". 用 DEFAULT 關鍵字聲明缺省值.

    可選的參數 send_functionreceive_function 用于請求 Postgres 服務的應用程序和 Postgres 數據庫不在同 一臺機器的場合. 在這種情況下, Postgres 運行的機器所用的數據類型格式可能和遠端機器的不一樣. 在這種情況下,將服務器到客戶端的數據轉換成一個標準格式, 當服務器收到從客戶端來的數據時再轉換成機器的格式是合適的.如果 沒有這樣的函數聲明,就假設內部數據格式可以被任何相關的硬件體系接受. 比如, 如果在一臺 Sun-4 和一臺DECstation 之間傳遞數據, 單字節數據就不必轉換,但許多其他類型需要(轉換).

    可選的標簽 PASSEDBYVALUE 表明使用該數據類型的操作符或函數應該傳遞一個參數的值而不是引用(形參). 要注意對內部格式超過4字節的類型你不能傳遞參數值.

    storage 關鍵字 允許為變長數據類型選擇 TOAST 存儲方法 (定長類型只允許使用 plain). plain 為該數據類型關閉 TOAST:它將 總是用內聯的方式而不是壓縮的方式存儲. extended 是 TOAST 完全兼容的:系統將首先試圖壓縮 一個長的數據值,然后如果它仍然太長的話就將它的值移出主表的行. external 允許將值移出主表的行,但系統將不會壓縮它. main 允許壓縮,但是不贊成把數值移動出主表. (用這種存儲方法的數據項可能仍將移動出主表,如果不能放在一行里的話, 但是它們將比 extendedexternal 項更愿意呆在主表里.)

    對于新的基本類型, 用戶可以通過本節描述的一些功能定義操作符,函數和聚集.

    數組類型

    兩個通用內建函數,array_in 和 array_out,用于快速建立變長數組類型. 這些函數可對任何現存的 Postgres 數據類型進行操作.

    例子

    這個命令創建長方形數據類型,并且將這種類型用于一個表定義:

    CREATE TYPE box (INTERNALLENGTH = 8,
        INPUT = my_procedure_1, OUTPUT = my_procedure_2);
    CREATE TABLE myboxes (id INT4, description box);
       

    這條命令創建一個變長數組類型, 其數組元素的類型是整數.

    CREATE TYPE int4array (INPUT = array_in, OUTPUT = array_out,
        INTERNALLENGTH = VARIABLE, ELEMENT = int4);
    CREATE TABLE myarrays (id int4, numbers int4array);
       

    這條命令創建一個大對象類型并用其創建了一個表:

    CREATE TYPE bigobj (INPUT = lo_filein, OUTPUT = lo_fileout,
        INTERNALLENGTH = VARIABLE);
    CREATE TABLE big_objs (id int4, obj bigobj);
       

    注意

    類型名不能以下劃線("_")開頭而且只能有31個字符長. 這是因為 Postgres 偷偷地為每種基本類型創建了一個數組類 型,而且該數組類型的名字是基本類型名前面加一個下劃線.

    請參考 DROP TYPE 獲取刪除一個類型的信息.

    請參閱 PostgreSQL 程序員手冊CREATE FUNCTIONCREATE OPERATOR 和大對象的章節獲取更多信息.

    兼容性

    SQL3

    CREATE TYPESQL3 語句.



    |----------------------------------------------------------------------------------------|
                               版權聲明  版權所有 @zhyiwww
                引用請注明來源 http://m.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2006-06-02 18:41 zhyiwww 閱讀(409) 評論(0)  編輯  收藏 所屬分類: database
    主站蜘蛛池模板: 亚洲成人午夜电影| 久久久无码精品亚洲日韩蜜臀浪潮| 久久99国产亚洲精品观看| 日本激情猛烈在线看免费观看 | 可以免费看黄视频的网站| 18gay台湾男同亚洲男同| 18以下岁毛片在免费播放| 亚洲国产精品张柏芝在线观看| 成人免费大片免费观看网站| 亚洲国产成人手机在线电影bd| 很黄很黄的网站免费的| 亚洲天堂福利视频| 免费精品人在线二线三线区别| 国产精品高清视亚洲精品| 日本不卡高清中文字幕免费| 黄色一级视频免费观看| 亚洲人成色777777在线观看| 在线涩涩免费观看国产精品| 久久久亚洲裙底偷窥综合| 在线观看av永久免费| 春暖花开亚洲性无区一区二区| 亚洲国产精品嫩草影院久久| a在线免费观看视频| 自怕偷自怕亚洲精品| 手机看片久久国产免费| 狠狠躁狠狠爱免费视频无码| 亚洲精选在线观看| 精品免费国产一区二区| 丝袜捆绑调教视频免费区| 亚洲精品午夜在线观看| 免费亚洲视频在线观看| 国产黄色免费观看| 亚洲国产最大av| 国产亚洲精品高清在线| 成人免费观看一区二区| 男女拍拍拍免费视频网站| 亚洲不卡中文字幕| 亚洲乱码国产一区网址| 中文字幕免费在线看线人 | 免费人成无码大片在线观看| 97无码人妻福利免费公开在线视频|