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

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

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

2019-09-08 23:33:02
字體:
供稿:網(wǎng)友
COPY
拷貝
COPY ― 在表和文件之間拷貝數(shù)據(jù)
語法
COPY [ BINARY ] table [ WITH OIDS ]
    FROM { 'filename' | stdin }
    [ [USING] DELIMITERS 'delimiter' ]
    [ WITH NULL AS 'null string' ]
COPY [ BINARY ] table [ WITH OIDS ]
    TO { 'filename' | stdout }
    [ [USING] DELIMITERS 'delimiter' ]
    [ WITH NULL AS 'null string' ]
輸入
BINARY 
改變字段格式屬性,強(qiáng)制所有數(shù)據(jù)都使用二進(jìn)制格式存儲(chǔ)和讀取. 
  
table 
現(xiàn)存表的名字. 
WITH OIDS 
拷貝每行的內(nèi)部唯一對象標(biāo)識(OID). 
filename 
輸入或輸出的Unix文件的絕對路徑(文件)名. 
stdin 
聲明輸入是來自管道還是終端. 
stdout 
聲明輸出是進(jìn)入管道還是終端. 
delimiter 
一個(gè)用于分隔輸入或輸出的域的分隔符. 
null print 
一個(gè)代表 NULL 值的字串。因歷史原因,缺省是“/N”(反斜杠-N)。例如,你可以自己挑一個(gè)空字串。 
注意:對于拷貝入(copy in),任何匹配這個(gè)字串的字串將被存儲(chǔ)為 NULL 值,所以你應(yīng)該確保你用的字串和拷貝出(copy out)相同。
輸出
COPY 
拷貝成功完成. 
ERROR: reason 
拷貝失敗,原因在錯(cuò)誤信息里. 

描述
COPY 在 Postgres 表和標(biāo)準(zhǔn) Unix 文件之間交換數(shù)據(jù).COPY 指示 Postgres 后端直接從文件中讀寫數(shù)據(jù).該文件必須為后端可見,而且文件名必須從后端的角度聲明.如果聲明的是 stdin 或 stdout,數(shù)據(jù)通過客戶前端流到后端. 
注意
BINARY 關(guān)鍵字將強(qiáng)制使用二進(jìn)制對象而不是文本存儲(chǔ)/讀取所有數(shù)據(jù).這樣做在一定程度上比傳統(tǒng)的拷貝命令快,但移植性不是很好,而且生成的文件也較大,盡管這個(gè)方面與數(shù)據(jù)本身密切相關(guān). 
缺省地,文本拷貝使用 tab ("/t")字符作為分隔符.分隔符仍然可以用關(guān)鍵字 USING DELIMITERS 改成任何其它的字符.在數(shù)據(jù)中碰巧與分隔符相同的字符將用引號引起. 

你對任何要 COPY 出來的數(shù)據(jù)必須有select權(quán)限,對任何要 COPY 入數(shù)據(jù)的表必須有inser和update權(quán)限.使用 COPY 時(shí)后端同樣需要適當(dāng)?shù)膶ξ募僮鞯摹nix 權(quán)限. 

關(guān)鍵字 USING DELIMITERS 聲明一個(gè)作為所有列的分隔符的字符.如果在分隔符字串里聲明了多個(gè)字符,只使用第一個(gè)字符. 

小技巧: 不要把 COPY 和 psql 的命令/copy 混淆.
COPY 不會(huì)激活規(guī)則,也不會(huì)處理字段缺省值。不過它的確激活觸發(fā)器。 
COPY 在第一個(gè)錯(cuò)誤處停下來.這些在 COPY FROM 中不應(yīng)該導(dǎo)致問題,但在 COPY TO 時(shí)目的表會(huì)部分改變.應(yīng)該在一次失敗的拷貝后用 VACUUM 查詢做一些清除工作. 

因?yàn)椤ostgres 后端的工作目錄通常和用戶的工作目錄不一樣,本地用戶向一個(gè)文件"foo"(沒有附加的路徑信息)可能會(huì)產(chǎn)生不可預(yù)見的結(jié)果.這時(shí),foo 將生成在 $PGDATA/foo. 通常,聲明拷貝文件時(shí)要加上相對后端服務(wù)器的全路徑. 

作為 COPY 參數(shù)聲明的文件名必須存在與數(shù)據(jù)庫服務(wù)器可訪問的地方,不管是在本地硬盤還是在網(wǎng)絡(luò)文件系統(tǒng)上. 

如果使用了一個(gè)從一臺機(jī)器到另一臺機(jī)器的 TCP/IP 連接,而且聲明了目標(biāo)文件,那么目標(biāo)文件將會(huì)寫到后端運(yùn)行的機(jī)器上,而不是用戶的機(jī)器上.

文件格式
文本格式
當(dāng)不帶 BINARY 選項(xiàng)使用 COPY TO 時(shí),生成的文件每條記錄占據(jù)一行,每列(字段)用分隔符分開.內(nèi)嵌的分隔符字符將由一個(gè)反斜杠("/")開頭.字段值本身是由與每個(gè)字段類型相關(guān)的輸出函數(shù)生成的字符串.某一類型的輸出函數(shù)本身不應(yīng)該生成反斜杠;這個(gè)任務(wù)由 COPY 本身完成. 
每個(gè)記錄的實(shí)際格式是 

...
如果聲明了 WITH OIDST,它將被放在每行的開頭. 
如果 COPY 將它的輸出輸出到標(biāo)準(zhǔn)輸出而不是一個(gè)文件,在拷貝結(jié)束時(shí),它將在一個(gè)新行上輸出一個(gè)反斜杠("/")和一個(gè)句點(diǎn)("."),最后是一個(gè)換行符做為文件結(jié)束符.類似,如果 COPY 從標(biāo)準(zhǔn)輸入讀入數(shù)據(jù),它將把一行開頭的由一個(gè)反斜杠("/")和一個(gè)句點(diǎn)(".")和一個(gè)換行符組成的這三個(gè)連續(xù)字符作為文件結(jié)束符.不過,如果在這三個(gè)字符組合之前碰到一個(gè)真的EOF(文件結(jié)束符) COPY 將結(jié)束 terminate (接著就是后端自身). 

斜杠有其他的含義.NULL屬性輸出為"/N". 一個(gè)反斜杠字符輸出成兩個(gè)連續(xù)的反斜杠("http://")一個(gè)tab字符用一個(gè)反斜杠后面跟一個(gè)tab代表. 一個(gè)新行字符用一個(gè)反斜杠和一個(gè)新行代表.當(dāng)裝載不是由Postgres 生成的文件時(shí),你需要將反斜杠字符 ("/")轉(zhuǎn)換成雙反斜杠("http://")以保證正確裝載.?/div> 

二進(jìn)制格式
當(dāng)使用 COPY BINARY,文件的頭四個(gè)字節(jié)將是文件中記錄的個(gè)數(shù).如果數(shù)值是零, COPY BINARY 命令將一直讀到文件尾.否則,它將在達(dá)到個(gè)數(shù)時(shí)停止讀取.文件中剩余的數(shù)據(jù)將被忽略. 
文件中每一實(shí)例的格式如下表.要注意本格式一定要 完全 符合.無符號的四字節(jié)整數(shù)數(shù)量在下表中稱做 uint32 . 

表 19-1. 二進(jìn)制拷貝文件的內(nèi)容 
   
 文件開始 
uint32 記錄個(gè)數(shù) 
每條記錄 
uint32 記錄數(shù)據(jù)總長 
uint32 oid (如果聲明了) 
uint32 null 字段的個(gè)數(shù) 
[uint32,...,uint32] 字段個(gè)數(shù)(attribute numbers of attributes), 從0開始 
- <字段數(shù)據(jù)> 

二進(jìn)制數(shù)據(jù)的對齊
在Sun-3s,2-字節(jié)字段以2-字節(jié)為界對齊,而所有整數(shù)字段以4-字節(jié)為界對齊.字符字段以1-字節(jié)為界對齊.在大部分其他機(jī)器上,所有大于1字節(jié)的整數(shù)是按照4-字節(jié)為邊界對齊的.注意,變長字段由字段長度在埃皇組只是簡單的數(shù)組元素類型的連續(xù)流?/div> 
用法
下面的例子將一個(gè)表拷貝到標(biāo)準(zhǔn)輸出,使用豎直條("|")作為域分隔符: 
COPY country TO stdout USING DELIMITERS '|';
從一個(gè) Unix 文件中拷貝數(shù)據(jù)到表 "country": 
COPY country FROM '/usr1/proj/bray/sql/country_data';
這里是一些可以從標(biāo)準(zhǔn)輸入 stdin 輸入的數(shù)據(jù)的例子(所以在最后有結(jié)束符): 
  
   AF      AFGHANISTAN
   AL      ALBANIA
   DZ      ALGERIA
   ...
   ZM      ZAMBIA
   ZW      ZIMBABWE
   /.
同樣的數(shù)據(jù),輸出到一個(gè)Linux/i586機(jī)器的二進(jìn)制文件中去.?dāng)?shù)據(jù)是用 Unix 應(yīng)用 od -c 顯示的.表里有三個(gè)域;第一個(gè)是char(2) 第二個(gè)是 text.所有記錄在第三字段有空(null)值.注意 char(2) 字段是如何用空(null)補(bǔ)齊成四個(gè)字節(jié)的以及text字段是如何前面補(bǔ)長度的: 
   355  /0  /0  /0 027  /0  /0  /0 001  /0  /0  /0 002  /0  /0  /0
   006  /0  /0  /0   A   F  /0  /0 017  /0  /0  /0   A   F   G   H
     A   N   I   S   T   A   N 023  /0  /0  /0 001  /0  /0  /0 002
    /0  /0  /0 006  /0  /0  /0   A   L  /0  /0  /v  /0  /0  /0   A
     L   B   A   N   I   A 023  /0  /0  /0 001  /0  /0  /0 002  /0
    /0  /0 006  /0  /0  /0   D   Z  /0  /0  /v  /0  /0  /0   A   L
     G   E   R   I   A
   ...              /n  /0  /0  /0   Z   A   M   B   I   A 024  /0
    /0  /0 001  /0  /0  /0 002  /0  /0  /0 006  /0  /0  /0   Z   W
    /0  /0  /f  /0  /0  /0   Z   I   M   B   A   B   W   E
兼容性
SQL92
在SQL92里沒有 COPY 語句.
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 精品国产一区二区三区四 | 亚洲一级电影在线观看 | 久久精品视频亚洲 | 欧美性视频一区二区 | 国产精品视频亚洲 | 美国av免费看 | 狠狠干五月 | 色七七亚洲 | 久久久久国产精品久久久久 | 国产精品免费小视频 | 欧美成人高清视频 | 福利在线免费视频 | a网站在线| 男女做性免费网站 | 精品国产91久久久久久久妲己 | 亚洲视频在线一区二区 | www.91成人 | 青青草成人影视 | 怦然心动50免费完整版 | 久久草草影视免费网 | 在线成人免费av | 一级成人欧美一区在线观看 | 国产一区二区三区手机在线 | 日韩精品免费一区二区三区 | 日韩精品一区二区三区中文 | 在线a毛片免费视频观看 | 中文字幕在线视频日本 | 成人毛片视频在线观看 | 日韩精品一区二区三区中文 | 一级美女大片 | 羞羞网站在线观看入口免费 | 亚洲一级片在线观看 | 国产亚洲精品美女久久久 | 国产亚洲精品综合一区91 | japanesexxxx24videofree | 日韩字幕在线 | 久久精品com | 亚洲国产精品一区二区久久 | 亚洲国产高清视频 | 亚洲欧美国产视频 | 国产美女爽到喷白浆的 |