postgre数据导出为文件

数据迁移的时候,需要通过文件的方式导出输入,再导入新的数据库,具体操作分以下三步走:

1、登录数据库的服务器端

psql  -h 1.1.1.1(ip) -p (端口) -d (库名) --username=用户名

2、导出数据文件

\COPY (select * from schema.table_1) TO '/data/table_1.csv'  with delimiter '^'  null as '';

这里的文件目录一般是数据库所在服务器上的某目录。分隔符可以采用任何单字节的单个字符,但不能和字段内容中有的字符重复。这里采用^是因为字段中比较少见^,而,:;等符号比较常见,易重复或者存在。

如果全部的分隔符都在字段中包含怎么办呢?建议采用其他同步方式,比如Datax, cloud canal, kettle等。。实在不想弄其他方式呢,有个不是坏办法,就是先把含字符的那一个害群之马字段改掉,同步后再改回去

3、在要导入的目标数据库创建外表映射到服务器上的数据文件

CREATE external TABLE "schema"."table_1" (
   "id" int8 ,
  "code" varchar(32) ,
  "createtime" timestamp(0) 
)
 location ('gpfdist://目标数据库ip:端口/table_1.csv') format 'csv' (DELIMITER '^');

你可能感兴趣的:(sql,shell)