Posted at

postgresでcsv出力

More than 3 years have passed since last update.

postgresからcsv出力するメモ

COPYでのファイル名指定は、DBサーバから見たパスになるため注意


COPY TO

https://www.postgresql.jp/document/9.3/html/sql-copy.html

# csv形式での出力

# 区切り文字、QUOTE文字、NULL文字列、復帰、改行文字を含む値の場合はダブルクォーテーションつく
$ psql TESTDB -c "COPY (select * from foo) TO '/tmp/foo.csv' (FORMAT csv)"

# 全項目(null値以外) ダブルクォーテーションつく
$ psql TESTDB -c "COPY (select * from foo) TO '/tmp/foo.csv' (FORMAT csv, FORCE_QUOTE *)"


psqlコマンド

https://www.postgresql.jp/document/9.3/html/app-psql.html

ダブルクォーテーションつけたい場合はselect文で自前で付与しないとダメ??

# ダブルクォーテーションつかない

$ psql TESTDB -c "select * from foo" -A -F, > /tmp/foo.csv


  • -A = 位置揃えなし

  • -F, = カンマ区切り