一,概念
copy在数据库表和文件之间交换数据
copy to 把一个表的所有内容都拷贝到一个文件(把数据追加到表中原有数据)
copy from 从一个文件里拷贝数据到一个表里
copy 导入导出数据十分快速!!!
二,用法
可以copy一整张表,可以copy一个表里的指定字段,也可以copy一个select结果
导出
copy 表名或者表名(列名)或者(select查询) to 一个绝对路径地址 with 格式;
导入
copy 表名或者表名(列名)from 一个绝对路径地址 with 格式;
举例:
copy user to ‘/tmp/data/test.csv’ with csv;
copy user(name,password) to ‘/tmp/data/test.csv’ with csv;
copy (select * from user) to ‘/tmp/data/test.csv’ with csv;
copy user from ‘/tmp/data/test.csv’ with csv;
copy user(name,password) from ‘/tmp/data/test.csv’ with csv;
注意:1 导入导出命令相似,只是把to改成了from
2 必须是在psql执行,也必须是postgres用户才可以
普通用户要用\copy
3 如果导出时有int[]型,最好做如下处理
\copy (select coalesce(integer_array,‘{}’)::integer[] as integer_array from table to ‘/tmp/data/test.csv’ with csv;
4 from的时候数据库中必须已经存在这张表
三 实际应用
导出成csv带表头
copy test to '/home/postgres/test.csv' With CSV DELIMITER ',' HEADER;
注:本文仅供自己学习,如有侵权,请私信
https://www.jb51.net/article/204298.htm
https://blog.csdn.net/wtopps/article/details/79097748