Postgresql 批量导入导出表数据

postgresql没有自带的批量导入导出成CSV的指令,但是有一个调用执行文件的指令(\i),这个指令可以执行编写的脚本。例如
一个a.txt文件,里面内容是

#将xxx表数据导出xxx文件
\copy xxx to xxx

需要在客户端的指令界面执行以下指令

\i 路径\a.txt

就可以进行批量导出操作。

postgresql copy命令介绍

注意COPY只能用于表,不能用于视图

copy命令可以操作的文件类型有:txt、sql、csv、压缩文件、二进制格式

1、copy命令导入数据示例:tb2是表名,delimiter ‘,’ 表示按逗号分隔字段数据

postgresql=# copy tb2 from '/mnt/postgresql/weibo.1000'delimiter ',';
COPY1000
postgresql=# select count(*)from tb2;

2、copy命令导入导出数据为sql格式

postgresql=# COPY tb2 TO '/mnt/postgresql/weibo.sql';
COPY1000
postgresql=#  COPY tb2 from '/mnt/postgresql/weibo.sql';
COPY2000

导出表 employee 到 sql 文件:

psql> COPY employee TO '/home/smallfish/employee.sql';

从文件导入数据:

psql> COPY employeenew FROM '/home/smallfish/employee.sql';

导入文件数据,指定间隔符为 | :

psql> COPY employeenew FROM '/home/smallfish/employee.sql' DELIMITER |;

数据库导入导出

导入整个数据库
psql -U postgres(用户名)  数据库名(缺省时同用户名) < /data/dum.sql

导出整个数据库
pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)   >/data/dum.sql

导出某个表
pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)  -t table(表名) >/data/dum.sql

压缩方法

一般用dump导出数据会比较大,推荐使用xz压缩

压缩方法  xz dum.sql 会生成 dum.sql.xz 的文件

xz压缩数据倒数数据库方法
xzcat /data/dum.sql.xz | psql -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)

导入数据过程:

/*1.删除索引*/
drop index UQ_IDX_UNI_ENTERPRISE_001;

/*2.清空表数据,注意该步骤,只有测试在重复部署环境时才执行,生产环境只初始化一次,不需要执行 */
truncate tb_uni_enterprise;

/*3.导入数据*/
COPY tb_uni_enterprise(appid, eid, ename, status, creator, createtime,modifier, modifytime, memo) FROM '/tmp/init/enterprise.sql' DELIMITER '|';

/*4.创建索引*/
create unique index UQ_IDX_UNI_ENTERPRISE_001 on TB_UNI_ENTERPRISE (
appid,
eid
);

参考链接 :
https://blog.csdn.net/sinat_33775006/article/details/101181769
postgresql 数据导入导出https://blog.csdn.net/sanjiaoqq/article/details/84441053
更多介绍 :postgresql copy命令介绍 https://www.cnblogs.com/xiaodf/p/5027196.html

POSTGRESQL 数据库导入导出 :https://blog.csdn.net/qq_23077579/article/details/81780669
PostgreSQL COPY 导入/导出数据 : http://ju.outofmemory.cn/entry/35794
https://yq.aliyun.com/articles/74420

https://www.cnblogs.com/junge8618/p/5513966.html

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寰宇001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值