postgresql没有自带的批量导入导出成CSV的指令,但是有一个调用执行文件的指令(\i),这个指令可以执行编写的脚本。例如我们要把test库的table1,table2 两个表导出到/opt/software/目录下
步骤:
1.编写脚本: test.txt
test.txt内容如下,代表意思为将table1 输出到/opt/software目录下,分割符号为 ‘|’,如若需要带字段名可以这样
\COPY table1 to '/opt/software/table1.csv' with csv header;
\COPY table1 to '/opt/software/table1.csv' WITH CSV DELIMITER '|';
\COPY table2 to '/opt/software/table2.csv' WITH CSV DELIMITER '|';
按照查询内容导出
\copy (SELECT team, gold+silver+copper AS medal FROM table_name) to '/opt/2023.csv' with csv header;
2.登录客户端执行脚本内容
psql -U 用户名 -d 数据库名 -h 地址 -p 5432
#再输入密码即可登录 :
#执行命令
\i /opt/software/a.txt
执行成功,然后就可以导出文件了