アプリ開発を行っているとPostgresでCSV出力したい時ってありますよね。
難しい…と思うかもしれませんが意外と簡単にできてしまいます。
今回はそのあたりを解説したいと思います。
このブログは現役のエンジニア(プログラマー歴が約12年)の僕(よしたか)が2019年12月後半から日々更新しております。
もしもアフィリエイトは会員登録後も無料です!
今すぐ会員登録してアフィリエイトを始めよう!
PostgresでCSV出力を行う方法
ではCSV出力を行う方法を見ていきたいと思います。
COPYコマンド
『COPY』コマンドを利用すると簡単にCSV出力ができます。
COPYコマンドの使い方
『COPY』コマンドでCSV出力する方法ですが、
COPY ( select * ~ ) TO '/tmp/output.csv' WITH CSV DELIMITER ',';
このように実行すると、
『/tmp/output.csv』に『カンマ』区切りで出力できます。
簡単ですよね。
『select * ~』個所は適時検索を入れたり必要なカラムを指定したりできます。(普通のセレクト文ですね)
タブ区切り(TSV)での出力も可能
CSVだけでなく、TSVでの出力も可能です。
COPY ( select * ~ ) TO '/tmp/output.csv' WITH CSV DELIMITER E'\t';
このように実行すると、TSVで出力されます。
各項目をダブルクオート(")で囲んで出力も可能
エクセルで利用したい時にダブルクオート(")で囲みたい時もありますよね。
COPY ( select * ~ ) TO '/tmp/output.csv' WITH CSV FORCE QUOTE *;
このように実行すると、ダブルクオート(")で囲まれて出力できます。
まとめ
いかがだったでしょうか。
DBからCSV出力したい時って何かしらアプリの運用をしている上で必ず出てきます。
こういった1つ1つの事って以外と忘れていたりするので、是非参考になればと思います。