COPY在PostgreSQL表和標准文件系統文件之間交換數據。COPY……TO把一個表的所有內容都拷貝到一個文件,而COPY……FROM從一個文件里拷貝數據到一個表里(把數據附加到表中已經存在的內容里)。
COPY 表名 TO '文件名.csv' CSV HEADER;
1、將excel文件轉換為csv格式,方法如下:
文件-->另存為-->其他格式,保存類型下拉框中選擇CSV格式。
2、psql連接PostgreSQL數據庫:
psql -h 127.0.0.1 -p 5432 -d postgres -U postgres
3、設置psql客戶端編碼格式(中文問題):
查看psql客戶端當前編碼格式,命令:show client_encoding;
如果編碼格式不是GBK,設為GBK,命令:set client_encoding='GBK';
4、執行copy命令:
copy t_test(name) from 'D:\\t_test.csv' with csv;
導出:
copy new_table to '/tmp/vehicles_2.csv' csv header;
返回結果:
COPY 4260
注:CSV,打開逗號分隔變量(CSV)模式。
HEADER,聲明文件包含一個頭標識行,包含文件中每個字段的名字。輸出時,第一行包含表的字段名,輸入時,第一行被忽略。
帶文件名的 COPY指示 PostgreSQL服務器直接從文件中讀寫數據。如果聲明了文件名,那么該文件必須為服務器可見,而且文件名必須從服務器的角度聲明。如果聲明的是STDIN或STDOUT,數據通過連接在客戶前端和服務器之間流動。
