国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > PostgreSQL > 正文

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

2019-09-08 23:33:25
字體:
來源:轉載
供稿:網友
CREATE TYPE
名稱
CREATE TYPE ― 定義一個新的基本數(shù)據(jù)類型 

語法
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 
將要創(chuàng)建的類型名. 
internallength 
一個文本串,說明新類型的內部長度. 
externallength 
一個文本串,說明新類型的外部長度. 
input_function 
一個函數(shù)的名稱,由 CREATE FUNCTION 創(chuàng)建,將數(shù)據(jù)從外部類型轉換成內部類型. 
output_function 
一個函數(shù)的名稱,由 CREATE FUNCTION 創(chuàng)建,將數(shù)據(jù)從內部格式轉換成適于顯示的形式. 
element 
被創(chuàng)建的類型是數(shù)組;這個聲明數(shù)組元素的類型. 
delimiter 
數(shù)組的分隔字符. 
default 
用于顯示的表示"數(shù)據(jù)不存在"的缺省文本. 
send_function 
用 CREATE FUNCTION 創(chuàng)建的函數(shù)名,它將該類型的數(shù)據(jù)轉換成一個適合傳輸?shù)狡渌麢C器的形式. 
receive_function 
用 CREATE FUNCTION 創(chuàng)建的函數(shù)名,將該類型從適于傳輸給其他機器的形式轉換為內部形式. 
輸出
CREATE 
如果創(chuàng)建類型成功,返回此信息. 

描述
CREATE TYPE 允許用戶在 Postgres 當前數(shù)據(jù)庫里創(chuàng)建一個新的用戶數(shù)據(jù)類型.定義該類型的用戶成為其所有者. Typename 是新類型的名稱而且必須在所定義的數(shù)據(jù)庫中唯一. 
CREATE TYPE 需要在定義類型之前先注冊兩個函數(shù)(用創(chuàng)建函數(shù)命令).新的基本類型的形式由 input_function 決定,它將該類型的外部形式轉換成可以被對該類型操作的操作符和函數(shù)識別的形式.自然,output_function 用做相反用途.輸入和輸出函數(shù)都必須定義成接收一個或兩個類型為 "opaque" 的參數(shù)的函數(shù). 

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

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

ELEMENT = int4
要聲明用于這種類型數(shù)組的分隔符,可設置 delimiter 聲明分隔符.缺省的分隔符是逗號(","). 
一個可選的的缺省值可用于令用戶聲明某種位模式來代表"數(shù)據(jù)不存在".用 DEFAULT 關鍵字聲明缺省值. 

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

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

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

數(shù)組類型
兩個通用內建函數(shù),array_in 和 array_out,用于快速建立變長數(shù)組類型.這些函數(shù)可對任何現(xiàn)存的 Postgres 數(shù)據(jù)類型進行操作. 
數(shù)組類型
兩個通用內建函數(shù),array_in 和 array_out,用于快速建立變長數(shù)組類型.這些函數(shù)可對任何現(xiàn)存的 Postgres 數(shù)據(jù)類型進行操作. 
大對象類型
一個"正常的" Postgres 類型最多只能有8192字節(jié)長.如果你需要更大的類型,你必須創(chuàng)建大對象類型(Large Object type).這些數(shù)據(jù)類型的接口在 PostgreSQL 程序員手冊 里詳細討論.所有大對象類型的長度總是 VARIABLE (變長).
例子
這個命令創(chuàng)建長方形數(shù)據(jù)類型,并且將這種類型用于一個表定義: 
CREATE TYPE box (INTERNALLENGTH = 8,
    INPUT = my_procedure_1, OUTPUT = my_procedure_2);
CREATE TABLE myboxes (id INT4, description box);

這條命令創(chuàng)建一個變長數(shù)組類型, 其數(shù)組元素的類型是整數(shù). 
CREATE TYPE int4array (INPUT = array_in, OUTPUT = array_out,
    INTERNALLENGTH = VARIABLE, ELEMENT = int4);
CREATE TABLE myarrays (id int4, numbers int4array);

這條命令創(chuàng)建一個大對象類型并用其創(chuàng)建了一個表: 
CREATE TYPE bigobj (INPUT = lo_filein, OUTPUT = lo_fileout,
    INTERNALLENGTH = VARIABLE);
CREATE TABLE big_objs (id int4, obj bigobj);

注意
類型名不能以下劃線("_")開頭而且只能有31個字符長.這是因為 Postgres 偷偷地為每種基本類型創(chuàng)建了一個數(shù)組類型,而且該數(shù)組類型的名字是基本類型名前面加一個下劃線. 
請參考 DROP TYPE 獲取刪除一個類型的信息. 

請參閱 PostgreSQL 程序員手冊 中 CREATE FUNCTION, CREATE OPERATOR 和大對象的章節(jié)獲取更多信息. 

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

圖片精選

主站蜘蛛池模板: 论坛| 北京市| 噶尔县| 尉氏县| 天祝| 和顺县| 杭锦后旗| 双牌县| 永年县| 饶阳县| 兴山县| 成武县| 云安县| 沂源县| 安达市| 黑龙江省| 景洪市| 京山县| 大城县| 华坪县| 蛟河市| 马龙县| 阆中市| 革吉县| 孝义市| 六安市| 阳朔县| 彭山县| 璧山县| 台南县| 正镶白旗| 鹤岗市| 铅山县| 多伦县| 柳林县| 油尖旺区| 京山县| 神农架林区| 大城县| 日土县| 洞头县|