使うときにいつもどっちがどっちか忘れているので、質問された機会に整理してみた。
※テーブル「book」をエクスポートするとして。
COPY book TO 'book.csv' WITH CSV HEADER;
- 権限:
(ポスグレの)スーパーユーザしか実行できない。 - ファイル作成場所:
サーバ側/絶対パスのみ - ファイル属性:
サーバを起動しているOSユーザの所有
\COPY book TO 'book.csv' WITH CSV HEADER
- 権限:
(ポスグレの)一般ユーザでも実行できる。 - ファイル作成場所:
クライアント側/絶対パスまたは相対パス
(psql起動時のカレントディレクトリが基点) - ファイル属性:
psqlを起動したOSユーザの所有