[PostgreSQL] テーブル(table)を csv 出力する方法

Mon, December 26, 2011 - 1 min read

PostgreSQLにて、tableのデータを csv 出力する方法を調べたのでメモ。

$ psql dbname

dbname=> \\o tablenams.csv
dbname=> \\a
Output format is unaligned.
dbname=> \\pset fieldsep ','
Field separator is ','.
dbname=> select * from tablename;
dbname=> \\o

\\o で出力先を指定
\\a で桁そろえをしない
\\pset fieldsep でセパレータを指定
タブ区切りは '\  '
select 文で対象データを抽出する。
最後の \\o で出力先を戻します。

コマンドラインから行いたい場合は、以下の方法があります。

$ psql -c 'SELECT * FROM tablename;' -A -F,

-A 桁そろえをしない
-F セパレータを指定(-F, でカンマ、-F\   でタブ)

参考情報

Postgres でテーブルを csv 出力

PostgreSQL のデータをCSV出力する - IT革命~