PostgreSQLでローカルファイルからリモートDBにコピーするにはどうすればよいですか?[閉まっている]


9

私はpsqlの初心者で、助けが必要です。ローカルCSVをリモートDBにロードするにはどうすればよいですか?

次のコマンドを使用しています

\COPY test(user_id, product_id, value) 
      FROM '/Users/testuser/test.tsv' WITH DELIMITER '\t' CSV HEADER;

しかし、これはリモートPCのファイルを検索しますが、ローカルPCで検索する必要があります。


4
\copyローカルファイルを読み取ります(これはpsqlコマンドであり、内部からのみ使用できますpsql)。COPYただし(「」がないことに注意してください)、サーバー上のファイルを読み取ります。
a_horse_with_no_name 2013

これには方法がないのですか?ファイルをリモートサーバーにコピーする必要がありますか?
user22149 2013

コピーと\ copyに違いはありますか?申し訳ありませんが私は、私は何の問題もなく、これを行うことができますが神託を知ってpsqlで本当に新しいです
user22149

違いは、1つはサーバー上のファイルを読み取り、もう1つはクライアント上のファイルを読み取ることです。明らかにサーバー上のファイルの読み取りは速くなります。
a_horse_with_no_name 2013

1
@ user22149リテラルタブまたはを使用しますE'\t'。ただし、いずれにしてもdelimを指定しない場合は、tabがデフォルトになります。
クレイグリンガー2013

回答:


5

ここには2つの可能性があります。

  1. psqlを使用している場合、\ copyは、あなたが言うように物事を行う正しい方法です。

  2. 作成したクライアントプログラムを使用している場合は、

    COPY FROM STDIN.....

そして、ファイルをフィードします(COPYコマンドに関するドキュメントを参照してください)。

COPYコマンドは少し奇妙な獣です。これは、PostgreSQLが現在Quelでサポートしているコマンドの1つです。そのため、どちらも非標準であり、他のコマンドとは異なるパラダイムに基づいています。このため、このコマンドに関するドキュメントを比較的注意深く読むことが重要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.