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

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 でセパレータを指定
タブ区切りは '\t'
select 文で対象データを抽出する。
最後の \o で出力先を戻します。

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

$ psql -c 'SELECT * FROM tablename;' -A -F,
 
-A 桁そろえをしない
-F セパレータを指定(-F, でカンマ、-F\t でタブ)

参考情報

Postgres でテーブルを csv 出力

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