импорт текстового файла с помощью pgAdmin

Я только что скачал pgAdmin 1.14.3, чтобы импортировать, запрашивать и управлять большими текстовыми файлами. Эти текстовые файлы либо разделены кавычками, запятыми, либо табуляцией (они идут как кавычки, запятые, и я отредактировал многие для использования с другим программным обеспечением). Хотя версия 1.16 поддерживает функцию импорта, она еще не выпущена, и мне интересно, как импортировать данные во вновь созданную таблицу с помощью pgAdmin.

Текстовые файлы имеют размер от 12 МБ до 2 ГБ, поэтому я ищу комплексное решение, которое не включало бы импорт построчно. Я пробовал это с phppgadmin, но столкнулся с ограничениями размера файла, встроенными в файл php.ini (отдельный пост), и я пытаюсь использовать это как возможный обходной путь. Я немного новичок в SQL, поэтому не совсем уверен во всех возможных командах. Любая помощь приветствуется - спасибо!


person Beardo    schedule 15.08.2012    source источник


Ответы (1)


Вы можете выполнить оператор 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.

person dezso    schedule 15.08.2012
comment
Большое спасибо - это полезно, но у меня проблемы, и я подозреваю, что это связано с проблемами с разрешениями - мой текстовый файл находится на моем процессоре внизу, а процессор сервера с postgreSQL - наверху. Я не думал, что это имеет значение, но, может быть, это имеет значение? Я получаю две отдельные ошибки в зависимости от того, использую ли я COPY или \copy. COPY выдает синтаксическую ошибку в C или рядом с ней (ссылаясь на имя пути), а \copy не создает такого файла или каталога. - person Beardo; 16.08.2012
comment
Большое спасибо за Вашу помощь. На самом деле ошибка была на моей стороне, и когда я сегодня начал все заново, я обнаружил недостающие столбцы. Я исправил ошибку и использовал следующие команды для успешного импорта: \copy test FROM 'c:\test\test.txt' - person Beardo; 21.08.2012
comment
кроме того, я смог импортировать самый большой из файлов - 2,6 ГБ, создав версию csv и импортировав с помощью WITH CSV HEADER, как указано, как вы мне дали. Спасибо! - person Beardo; 21.08.2012