麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-19. SQL命令-CREATE TYPE

2019-09-08 23:33:25
字體:
來源:轉載
供稿:網友
CREATE TYPE
名稱
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 ] )

輸入
typename 
將要創建的類型名. 
internallength 
一個文本串,說明新類型的內部長度. 
externallength 
一個文本串,說明新類型的外部長度. 
input_function 
一個函數的名稱,由 CREATE FUNCTION 創建,將數據從外部類型轉換成內部類型. 
output_function 
一個函數的名稱,由 CREATE FUNCTION 創建,將數據從內部格式轉換成適于顯示的形式. 
element 
被創建的類型是數組;這個聲明數組元素的類型. 
delimiter 
數組的分隔字符. 
default 
用于顯示的表示"數據不存在"的缺省文本. 
send_function 
用 CREATE FUNCTION 創建的函數名,它將該類型的數據轉換成一個適合傳輸到其他機器的形式. 
receive_function 
用 CREATE FUNCTION 創建的函數名,將該類型從適于傳輸給其他機器的形式轉換為內部形式. 
輸出
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_function 和 receive_function 用于請求 Postgres 服務的應用程序和 Postgres 數據庫不在同一臺機器的場合.在這種情況下,Postgres 運行的機器所用的數據類型格式可能和遠端機器的不一樣.在這種情況下,將服務器到客戶端的數據轉換成一個標準格式,當服務器收到從客戶端來的數據時再轉換成機器的格式是合適的.如果沒有這樣的函數聲明,就假設內部數據格式可以被任何相關的硬件體系接受.比如, 如果在一臺 Sun-4 和一臺 DECstation 之間傳遞數據,單字節數據就不必轉換,但許多其他類型需要(轉換). 

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

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

數組類型
兩個通用內建函數,array_in 和 array_out,用于快速建立變長數組類型.這些函數可對任何現存的 Postgres 數據類型進行操作. 
數組類型
兩個通用內建函數,array_in 和 array_out,用于快速建立變長數組類型.這些函數可對任何現存的 Postgres 數據類型進行操作. 
大對象類型
一個"正常的" Postgres 類型最多只能有8192字節長.如果你需要更大的類型,你必須創建大對象類型(Large Object type).這些數據類型的接口在 PostgreSQL 程序員手冊 里詳細討論.所有大對象類型的長度總是 VARIABLE (變長).
例子
這個命令創建長方形數據類型,并且將這種類型用于一個表定義: 
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 FUNCTION, CREATE OPERATOR 和大對象的章節獲取更多信息. 

兼容性
SQL3
CREATE TYPE 是 SQL3 語句.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 深夜毛片免费看 | 国产午夜精品一区二区三区嫩草 | 色淫视频 | 蜜桃精品视频 | 国产一区精品在线观看 | 深夜福利视频绿巨人视频在线观看 | 亚州精品天堂中文字幕 | 日本在线观看视频网站 | 亚洲资源在线 | 国产激情视频在线 | 国产一区精品在线观看 | 欧洲精品久久久久69精品 | 国产人成精品一区二区三 | 亚洲码无人客一区二区三区 | 牛牛a级毛片在线播放 | 国产精品视频导航 | 毛片成人网 | 久久久久久久久久久久网站 | 嗯~啊~弄嗯~啊h高潮视频 | 亚洲成人精品视频 | 国产精品美女久久久久久网站 | 国产91九色在线播放 | 久久一本日日摸夜夜添 | 97久久曰曰久久久 | 久久亚洲精选 | 国内久久久久 | 欧美日韩免费一区二区三区 | 久久99国产精品久久 | 黄色一级毛片免费看 | 久久精品视频7 | 国产99久久久久久免费看农村 | 91久久久国产精品 | 成人精品视频在线 | 精品国产中文字幕 | 久久99综合久久爱伊人 | 欧美日韩经典在线 | av在线网站观看 | 国产精品久久久久久久久久东京 | 亚洲精品一区中文字幕 | 亚洲第五色综合网 | 在线成人免费网站 |