2010-08-30 5 views
1

Мне нужно навалом загрузить большой файл в PostgreSQL. Обычно я использую команду COPY, но этот файл нужно загружать с удаленной клиентской машины. С помощью MSSQL я могу установить локальные инструменты и использовать bcp.exe на клиенте для подключения к серверу.Массовая загрузка PostgreSQL с удаленного клиента

Есть ли эквивалентный способ для PostgreSQL? Если нет, то какой рекомендуемый способ загрузки большого файла с клиентского компьютера, если я не могу сначала скопировать файл на сервер?

Спасибо.

ответ

3

COPY команда поддерживается в PostgreSQL Protocol v3.0 (Postgresql 7.4 или новее).

Единственное, что вам нужно использовать COPY от удаленного клиента является libpq включен клиент, такой как psql утилита командной строки.

С удаленного запуска клиента:

$ psql -d dbname -h 192.168.1.1 -U uname < yourbigscript.sql 
2

You можно использовать команду \copy из Psql инструмента, как: \copy команды

psql -h IP_REMOTE_POSTGRESQL -d DATABASE -U USER_WITH_RIGHTS -c "\copy 
    TABLE(FIELD_LIST_SEPARATE_BY_COMMA) from 'FILE_IN_CLIENT_MACHINE(MAYBE IN THE SAME 
DIRECTORY)' with csv header" 
0

psql Использование «s для загрузки данных в sql:

$ psql -h <IP> -p <port> -U <username> -d <database> 

database# \copy schema.tablename from '/home/localdir/bulkdir/file.txt' delimiter as '|' 

database# \copy schema.tablename from '/home/localdir/bulkdir/file.txt' with csv header 
Смежные вопросы