使用pgAdmin导入文本文件

3
我刚刚下载了pgAdmin 1.14.3,旨在导入、查询和管理大型文本文件。这些文本文件要么是引用逗号引用分隔,要么是制表符分隔(它们以引用逗号引用形式出现,我已经编辑了许多文件以供其他软件使用)。尽管版本1.16提供了导入功能,但尚未发布,我想知道如何使用pgAdmin将数据导入新创建的表中。
这些文本文件的大小从12MB到2GB不等,因此我正在寻找一个全面的解决方案,而不是逐行导入。我尝试了phppgadmin,但遇到了php.ini文件中嵌入的文件大小限制(单独的帖子),并将其作为可能的解决方法。我对SQL有点新,因此不太确定我可以使用的所有命令。感谢任何帮助!
1个回答

9
您可以发出一个COPY语句,就像这样:
COPY table_name (column_name)
FROM 'd:\test.sql';

Query returned successfully: 6 rows affected, 31 ms execution time.

请查看此处的文档:http://www.postgresql.org/docs/9.1/static/sql-copy.html 请注意,我没有在PgAdmin中测试过大文件的情况,但是使用psql时,我从未遇到过文件太大无法使用COPY的情况。

非常感谢 - 这很有帮助,但我遇到了问题,我怀疑是由于权限问题 - 我的文本文件在楼下的CPU上,而带有PostgreSQL的服务器CPU在楼上。我以为这不重要,但也许确实如此?如果我使用COPY或\copy,则会出现两个不同的错误。COPY会产生“语法错误,附近为“C”(指路径名),而\copy则会产生“没有此文件或目录”。 - Beardo
非常感谢您的帮助。实际上错误出在我这里,当我今天重新开始时,发现有缺失的列。我修复了错误并使用以下命令成功导入:\copy test FROM 'c:\test\test.txt'。谢谢。 - Beardo
此外,我成功地导入了最大的文件 - 2.6GB,通过创建CSV版本并使用您给我的类似语句中指定的 WITH CSV HEADER 进行导入。谢谢! - Beardo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接