当我不是超级用户并且无法使用copy
命令时,如何在Postgres中将表导出为.csv
?
我仍然可以通过右键单击上的“导入”按钮将数据导入到Postgres中,但没有导出选项。
当我不是超级用户并且无法使用copy
命令时,如何在Postgres中将表导出为.csv
?
我仍然可以通过右键单击上的“导入”按钮将数据导入到Postgres中,但没有导出选项。
使用 psql 并将流重定向到文件:
psql -U <USER> -d <DB_NAME> -c "COPY <YOUR_TABLE> TO stdout DELIMITER ',' CSV HEADER;" > file.csv
psql
中执行以下操作:\copy your_table TO '/path/to/your/file.csv' DELIMITER ',' CSV HEADER
pgadmin3
中,您也可以通过右键单击表名并选择查看数据来打开表。然后,您可以单击表的左上角(列名行与行号列相交的灰色空白方块)以选择所有行。最后,您可以使用CtrlC或菜单中的编辑 -> 复制进行复制。数据将以csv格式复制到剪贴板中,以分号;
为分隔符。
然后,您可以将其粘贴到LibreOffice Calc、MS Excel等软件中进行显示。我在使用超级用户和运行psql时遇到了问题,于是我采用了使用PGAdmin III的简单愚蠢方法。
1)SELECT * FROM ;
在运行选择查询之前,在菜单栏中选择“查询到文件”。
这将保存到您选择的文件夹中。可能需要调整导出设置,它喜欢引用和分号。
2)SELECT * FROM ;
正常运行然后通过选择文件菜单中的导出来保存输出。这将保存为 .csv 文件
对于大型表格,这并不是一个好方法。我尝试过几个拥有几十万行和10-30列的表格,但大表格可能会遇到问题。
psql
中,您可以使用\copy
代替copy
(将文件写入客户端而不是服务器),其他SQL工具具有其他功能。 - user330315