1

我需要将一个大文件批量加载到 PostgreSQL 中。我通常会使用 COPY 命令,但是这个文件需要从远程客户端机器上加载。使用 MSSQL,我可以安装本地工具并在客户端使用 bcp.exe 连接到服务器。

PostgreSQL有等效的方法吗?如果不是,如果我不能先将文件复制到服务器,那么从客户端机器加载大文件的推荐方法是什么?

谢谢。

4

4 回答 4

3

COPYPostgreSQL 协议 v3.0(Postgresql 7.4 或更高版本)支持命令。

您唯一需要COPY从远程客户端使用的是启用了libpq的客户端,例如psql命令行实用程序。

从远程客户端运行:

$ psql -d dbname -h 192.168.1.1 -U uname < yourbigscript.sql
于 2010-08-30T18:26:04.727 回答
2

您可以使用\copypsql 工具中的命令,例如:

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"
于 2013-01-02T13:38:41.167 回答
1

假设您有某种客户端来运行查询,您可以使用 COPY 命令的 COPY FROM STDIN 形式: http ://www.postgresql.org/docs/current/static/sql-copy.html

于 2010-08-30T21:44:22.433 回答
0

使用psql'\copy命令在 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
于 2013-02-25T21:21:39.647 回答