将一个大的PostgreSQL表拆分成多个CSV文件

3
我正在使用以下psql查询连接到远程主机并将一个大表拆分成多个CSV文件。
psql -h xx -p xx -U xx -d xx -c "\COPY (select * from table) TO program 'split --lines 1000' (format csv)

我不明白在这里犯了什么错误。


注意:该行末尾缺少一个双引号。 - wildplasser
虽然我认为Jim Jones的答案更简洁,但是在我添加了缺失的双引号之后,你的命令也成功运行了。 - jjanes
1个回答

3
你尝试使用过 STDOUT 吗?
$ psql -d db -c "COPY (SELECT * FROM t) TO STDOUT CSV " | split -1000

我可以像这样将一个 SQL 查询文件作为输入传递吗? psql -d db -c "COPY ($(<splice_site_v1_9mer.sql)) TO STDOUT CSV" | split 1000 - rshar
你需要使用“-f”来传递一个文件,但是它已经需要在其中有一个COPY命令。 - Jim Jones
它在没有 -f 的情况下工作。但我会看一下。谢谢。 - rshar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接