我应该如何使用 pgAdmin 3 将数据从 CSV 导入 Postgres 表?
Posted
技术标签:
【中文标题】我应该如何使用 pgAdmin 3 将数据从 CSV 导入 Postgres 表?【英文标题】:How should I import data from CSV into a Postgres table using pgAdmin 3? 【发布时间】:2013-10-24 09:01:30 【问题描述】:我需要为此使用任何插件或库吗? 我想先在我的本地系统上试试这个,然后在 Heroku Postgresql 上做同样的事情
【问题讨论】:
【参考方案1】:假设您有一个名为 mydata 的 SQL 表 - 您可以从 csv 文件加载数据,如下所示:
COPY MYDATA FROM '<PATH>/MYDATA.CSV' CSV HEADER;
更多详情请参考:http://www.postgresql.org/docs/9.2/static/sql-copy.html
【讨论】:
【参考方案2】:pgAdmin 从 1.16 开始就有用于数据导入的 GUI。您必须先创建表,然后才能轻松导入数据 - 只需右键单击表名并单击 Import。
【讨论】:
我应该如何将列从 CSV 映射到表格列? 这要求表中的列与 CSV 文件 1:1 匹配,包括列的顺序。不需要映射。 我遇到了唯一约束的问题,如何省略重复数据? 在导入期间无法处理此问题。从表中删除约束,导入数据,删除重复数据,然后重新添加约束。 RE:将 CSV 中的列映射到表...pgAdmin 期望 CSV 匹配列的自然顺序(将列添加到表中的顺序)。这只是 pgAdmin 的一个限制。在下面,pgAdmin 实际上只是使用COPY
命令。如果您要自己为COPY
编写SQL,您可以指定导入的列的不同顺序。另外,请注意“列”选项卡,您可以在其中告诉 pgAdmin 在 CSV 中省略了某些列,因此应该生成一个默认值。【参考方案3】:
您可能有一个名为“测试”的表
COPY test(gid, "name", the_geom)
FROM '/home/data/sample.csv'
WITH DELIMITER ','
CSV HEADER
【讨论】:
以上是关于我应该如何使用 pgAdmin 3 将数据从 CSV 导入 Postgres 表?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pgAdmin 4.2 获取从 PG/PLSQL 中的函数返回的整个表数据或多行。