我需要将一个大文件批量加载到PostgreSQL中。我通常会使用COPY命令,但需要从远程客户端计算机加载此文件。使用MSSQL,我可以安装本地工具并在客户端上使用bcp.exe连接到服务器。
PostgreSQL有同等的方法吗?如果没有,如果我不能先将文件复制到服务器,建议从客户机加载大文件的方法是什么?
感谢。
答案 0 :(得分:3)
COPY
命令。
从远程客户端使用COPY
唯一需要的是 libpq 启用的客户端,例如psql
命令行实用程序。
从远程客户端运行:
$ psql -d dbname -h 192.168.1.1 -U uname < yourbigscript.sql
答案 1 :(得分:2)
您可以使用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"
答案 2 :(得分:1)
假设您有某种客户端来运行查询,您可以使用COPY命令的COPY FROM STDIN形式:http://www.postgresql.org/docs/current/static/sql-copy.html
答案 3 :(得分:0)
使用psql
的{{1}}命令在sql中加载数据:
\copy