2007/11/25

Postgres でテーブルを csv 出力

SQL の結果を出力したいとき
\pset format unaligned -- 出力形式を指定
\pset fieldsep ',' -- フィールドのセパレータにカンマ区切りを指定
\o psql_out.csv -- 出力ファイルを指定
ここに SQL を書く
もしくは、シェルから psql のオプションを利用してクエリを送って実行する。
下記の例では指定していないが、カラム名を出力させたくなければ -t オプションを加えれば良い。
$ psql -c 'SELECT user_id, user_name FROM users ORDER BY user_id;' -A -F,

テーブルをまるごと出力したいとき。

SQL で SELECT * FROM TABLE_NAME をやってもいいけど、以下のようなやり方もある。
COPY system_name TO '/tmp/system_name_tabale.txt' DELIMITERS ',';

Google Analytics