1

大きなファイルを PostgreSQL に一括ロードする必要があります。通常は COPY コマンドを使用しますが、このファイルはリモート クライアント マシンからロードする必要があります。MSSQL を使用すると、ローカル ツールをインストールし、クライアントで bcp.exe を使用してサーバーに接続できます。

PostgreSQL に同等の方法はありますか? そうでない場合、最初にファイルをサーバーにコピーできない場合、クライアント マシンから大きなファイルをロードする推奨される方法は何ですか?

ありがとう。

4

4 に答える 4

3

COPYコマンドはPostgreSQL Protocol 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

\copy次のような psql ツールのコマンドを使用できます。

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 に答える