Postgresql 9.5多表批量导入导出表数据

这几天工作中遇到了一个问题,当我需要将Postgresql中表数据出成CSV格式的时候就需要用到PSQL这个命令行界面(不能复制粘贴)来执行\copy指令来做导入导出。那么问题来了,单个表的导入导出是没有问题的,批量怎么办呢,当表的数量不多时,可以一个个去导,但是当表的数据达到一定级数就费时费力了。
以下个人想到的三种方法

方法一(费事费力,pass):使用高级语言(java、Python等)通过数据库驱动,自定义批量脚本。
此方法主要思路:通过高级语言编写批量处理过程,调用数据库的\copy方法,批量执行指令,达到机器取代人工的目的。

方法二(每次表变动需要对脚本进行调整):使用操作系统提供的环境写脚本调用(shell指令等)。
此方法主要思路:通过写脚本调用postgresql客户端连接上数据库,执行\copy指令导入导出。

方法三:官方提供的指令。
此方法主要思路:通过postgresql自带的指令来进行批量导入导出。

最终本人使用的是方法二和方法三的综合方法,由于postgresql没有自带的批量导入导出成CSV的指令,但是有一个调用执行文件的指令(\i),这个指令可以执行编写的脚本。例如
一个a.txt文件,里面内容是

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

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

\i 路径\a.txt

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

你可能感兴趣的:(数据库)