在数据体量较大的情况下,可以使用copy命令将数据导入或导出postgresql数据库。
导入postgresql
导入数据库是用 copy from,具体命令如下:
copy tablename from file CSV HEADER DELIMITER ',' ENCODING 'GBK';
参数说明:csv 表示文件格式
header 表示文件第一行为字段名,导入数据库时忽略首行
delimiter 表示字段分割方式,示例是以逗号分割
encoding 表示文件编码方式,示例是 GBK 编码,(默认为utf-8)
从postgresql导出
导出数据时用 copy to,具体命令如下:
copy tablename(a,b) to filename delimiter ',' csv header encoding 'GBK';
参数说明:与导入的参数一致
如果需要将查询结果导出,则:
copy (select * from tablename) to filename delimiter ',' csv header encoding 'GBK';
注意点:1)如果需要把表中所有数据都导出,则不需要注明字段名
2)数据库用户需要有写文件的权限,postgresql默认的有权限路径是在/tmp 下