CSVファイルのインポート、エクスポート

PostgreSQLへのテストデータのロードにはcopyコマンドが使えます。

環境

ポイント

  • Windows環境では"\"を二回続ける
  • ファイルの一行目がヘッダーの場合は、"header"オプションを付ける
  • 文字コードの設定を行う(行わないと文字化けします)

文字コードの設定

SET client_encoding TO 'SJIS';

Excelで保存したファイルは文字コードがShift-JISなので、SQL実行までに変更してしまいます。

全カラム出力

copy books to E'c:\\csv\\books.csv' csv header ;

指定カラムのみ出力

copy books(name,price) to E'c:\\csv\\books2.csv' csv header ;

指定カラムのみ入力

copy books(name,price) from E'c:\\csv\\books4.csv' csv header ;

文字コードの設定

SET client_encoding TO 'UTF8';
select * from books;

サーバーの文字コードに合わせて、元に戻します。