2012-08-15 52 views
2

我剛剛下載了pgAdmin 1.14.3以努力導入,查詢和管理大型文本文件。這些文本文件是用逗號分隔的引號或製表符分隔的(它們以逗號引用的形式出現,我編輯了許多用於其他軟件的文本)。儘管版本1.16允許導入功能,但它尚未發佈,我想知道如何使用pgAdmin將數據導入到新創建的表中。使用pgAdmin導入文本文件

文本文件的範圍從12MB到2GB,所以我正在尋找一種不涉及逐行導入的綜合解決方案。我試圖用phppgadmin,但遇到了嵌入在php.ini文件(單獨的文章)中的文件大小限制,我試圖將此作爲一種可能的解決方法。我對SQL有點新,所以不敢確定所有命令可能在我的指尖。任何幫助表示讚賞 - 謝謝!

回答

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來說太大了。

+0

感謝大家 - 這是有幫助的,但我有麻煩,我懷疑這是由於權限問題 - 我的文本文件在我樓下的CPU和服務器與PostgreSQL cpu在樓上。我不認爲這很重要,但也許它確實如此?根據我使用COPY還是\ copy,我會得到兩個不同的錯誤。 COPY在「C」(指路徑名)處或附近產生「語法錯誤」,\ copy產生「無此類文件或目錄」 – Beardo 2012-08-15 21:00:57

+0

您能否顯示您發出的命令? – dezso 2012-08-16 04:15:21

+0

非常感謝您的幫助。實際上在我的最後,當我今天重新開始時,我發現缺少列,我修復了錯誤,並使用以下命令成功導入:\ copy test FROM'c:\ test \ test.txt' – Beardo 2012-08-20 20:12:29