[PostgreSQL] COPY sql TO file

2018/08/29   #PostgreSQL 
このエントリーをはてなブックマークに追加

リモート の postgresql につないで、
ローカル ファイルシステムにダンプする場合、
COPY コマンドの先頭に \ をつけて実行する必要がある。

psql> \COPY  (SELECT * FROM foos WHERE id = 1) TO '/tmp/foos.dump';

\ なしだと以下のようなエラーが出る。

psql> COPY  (SELECT * FROM foos WHERE id = 1) TO '/tmp/foos.dump';
ERROR:  could not open file "/tmp/foos.dump" for writing: No such file or directory

参考:
postgresql の copy コマンド使用 | 開発メモ書き

PostgreSQL の COPY コマンドを使いこなす|Everything you do is practice


で、 COPY sql TO file したものを、
COPY "sample_table" FROM stdin;\. で囲むと、
それをそのまま psql に食わせることができるようになる。

PostgreSQLでの部分データ移行 - yuumi3のお仕事日記