【问题标题】:Split a big postgres table into multiple csv将一个大的 postgres 表拆分为多个 csv
【发布时间】:2020-05-27 22:55:02
【问题描述】:

我正在使用以下 psql 查询连接到远程主机并将一个大表拆分为多个 csv 文件。

psql -h xx -p xx -U xx -d xx -c "\COPY (select * from table) TO program 'split --lines 1000' (format csv)

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

【问题讨论】:

  • 注意:行尾少了一个双引号。
  • 虽然我认为 Jim Jones 的回答更简洁,但一旦我在末尾添加了缺少的双引号,您的命令也对我有用。

标签: postgresql psql postgresql-copy


【解决方案1】:

您是否尝试过使用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
  • 你必须使用-f来传递一个文件,但它已经需要一个COPY命令了
  • 它在没有 -f 的情况下工作。但是会看看..谢谢
猜你喜欢
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 2021-11-29
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多