如何将表数据从 PostgreSQL (pgAdmin) 导出到 CSV 文件?

Posted

技术标签:

【中文标题】如何将表数据从 PostgreSQL (pgAdmin) 导出到 CSV 文件?【英文标题】:How to export table data from PostgreSQL (pgAdmin) to CSV file? 【发布时间】:2019-05-15 14:14:59 【问题描述】:

我正在使用 pgAdmin 4.3 版,我想将一个表数据导出到 CSV 文件。我使用了这个查询

COPY (select * from product_template) TO 'D:\Product_template_Output.csv' DELIMITER ',' CSV HEADER;

但它显示错误

相对路径不允许使用 COPY 到文件

请问如何解决这个问题?

【问题讨论】:

【参考方案1】:

在查询编辑器中,执行查询后,您只需单击“下载为 CSV (F8)”按钮或使用 F8 键。

来源pgAdmin 4 Query Toolbar

【讨论】:

【参考方案2】:

使用绝对路径或 cd 到已知位置,这样您就可以忽略该路径。 例如 cd 进入 documents 目录,然后在那里运行命令。

如果您能够 cd 进入您的 documents 目录,那么命令将是这样的:

假设您想从命令行使用 PSQL。 cd ~/Documents && psql -h host -d dbname -U user

\COPY (select * from product_template) TO 'Product_template_Output.csv' DELIMITER ',' CSV HEADER;

结果将是您当前工作目录(Documents 文件夹)中的 Product_template_Output.csv

再次使用 psql

【讨论】:

\COPYCOPY 好,因为\COPY 也适用于普通用户。【参考方案3】:

试试这个命令:

COPY (select * from product_template) TO 'D:\Product_template_Output.csv' WITH CSV;

【讨论】:

【参考方案4】:

你必须删除双引号:

COPY (select * from product_template) TO 'D:\Product_template_Output.csv'
   DELIMITER ',' CSV HEADER;

【讨论】:

以上是关于如何将表数据从 PostgreSQL (pgAdmin) 导出到 CSV 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将表添加到 postgreSQL 中的特定模式?

如何将具有自定义枚举类型的数据从 csv 插入现有的 PostgreSQL 表

如何使用 RPostgreSQL 将表写入 Panoply?

将表传递给 postgreSQL 函数,执行 select 语句,返回表

FULL OUTER JOIN 将表与 PostgreSQL 合并

使用kafka将表从Oracle复制到Postgresql不起作用