バッチからPostgreSQLにCSVインポートを行う
2332 ワード
バッチから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が出力される。
Author And Source
この問題について(バッチからPostgreSQLにCSVインポートを行う), 我々は、より多くの情報をここで見つけました https://qiita.com/saki_study111/items/8397f33691845c55bf58著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .