LoginSignup
0
0

More than 3 years have passed since last update.

バッチからPostgreSQLにCSVインポートを行う

Last updated at Posted at 2020-03-07

バッチからPostgreSQLにCSVインポート

環境

  • DBサーバ:Windows10 PostgreSQL11.6
  • クライアント端末:Windows10

※ローカル端末とDBサーバは別の端末にしています。

詳細

PostgreSQLでCSVのインポートを行うにはCOPYコマンドを使用します。
COPY」コマンドにも2種類あり、COPY\COPYがあります。
なにが違うのか?

[COPY]
  • SQLコマンドが実行されるDBサーバーのファイルを読み込む。
  • 複数行にわたって記述できる。
  • 公式ドキュメント
[\COPY]
  • ローカルサーバー(ターミナルを開いているサーバー)のファイルを読み込む。
  • 1行で記述しなければいけない。
  • 公式ドキュメント

サンプル

COPY table1 (col1, col2) FROM :'CSV_PATH' with encoding 'SJIS' format csv force_not_null(col1, col2) HEADER;

※with句について
encoding: csv 読み込むファイルの文字コードがSJIS
format: 'SJIS' ファイルフォーマットがCSV形式
force_not_null: 指定したカラムが空文字の場合にNULLに設定
HEADER: ヘッダ行がある場合は記載する
※他にもオプションあり
※「COPY」と「\COPY」で使えるオプションが違う。

補足

COPY テーブル名 FROM ファイル名 (ファイルからテーブルにデータを読み込む)
COPY テーブル名 TO ファイル名 (テーブルからファイルにデータを出力)
・「COPY」の場合はDBサーバ側にCSVを配置してインポートを行い、DBサーバ側にCSVが出力される。
・「\COPY」の場合はクライアント端末側にCSVを配置してインポートを行い、DBサーバ側にCSVが出力される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0