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\ でタブ)