在postgres上将表导出到csv

时间:2013-12-19 10:07:54

标签: postgresql csv export-to-csv

如果我不是超级用户且无法使用.csv命令,如何将表导出到Postgres中的copy

我仍然可以通过右键单击“导入”按钮将数据导入到postgres,但没有导出选项。

5 个答案:

答案 0 :(得分:34)

使用psql并将流重定向到文件:

psql -U <USER> -d <DB_NAME> -c "COPY <YOUR_TABLE> TO stdout DELIMITER ',' CSV HEADER;" > file.csv

答案 1 :(得分:3)

COPY your_table TO '/path/to/your/file.csv' DELIMITER ',' CSV HEADER;

有关详细信息,请转到此manual

答案 2 :(得分:2)

除了his answer你可以做的marvinorez所建议的,psql

\copy your_table TO '/path/to/your/file.csv' DELIMITER ',' CSV HEADER

另一方面,从pgadmin3,您也可以通过右键单击其名称然后选择查看数据来打开表格。然后,您可以单击表格的左上角(列名称行与行号列连接的位置,灰色空方块)以选择所有行。最后,您可以使用 Ctrl C 或编辑 - &gt;进行复制。在菜单中复制。数据将以csv格式复制到剪贴板,由分号;分隔。 然后,您可以将其粘贴到LibreOffice Calc,MS Excel中以进行显示。

如果你的表很大(什么是大的,取决于你的机器的RAM数量等),它可能不适合剪贴板,所以在这种情况下,我不会使用这种方法,而是第一个( \副本)。

答案 3 :(得分:0)

最简单的方法确实是我想的复制品。如果你不能这样做,那么如何使用pg_dump然后用sed,AWK甚至文本编辑器转换输出文件呢?即使在可接受的时间内搜索和替换,这也应该有效:)

答案 4 :(得分:0)

我遇到了超级用户和运行psql的麻烦,我采用了简单的愚蠢方式使用PGAdmin III。
1)SELECT * FROM;
   在菜单栏中选择“查询”之前,选择“查询到文件”。    这会将其保存到您选择的文件夹中。可能要玩有关如何导出的设置,它喜欢引用和;。

2)SELECT * FROM;
正常运行,然后通过在“文件”菜单中选择“导出”来保存输出。这将保存为.csv

这对于大型表来说不是一个好方法。我这样做的表是几十万行和10-30列。大表可能有问题。