【PostgreSQL】psqlのコマンド実行にてCSVファイルをテーブルにインポートする方法
目次
psqlのコマンド実行にてCSVファイルをテーブルにインポートする方法
今回使用した環境
インターネット接続可能のオンラインの環境
64 ビット オペレーティング システム
Windows 10 22H2
PostgreSQL 14.4
インポートするCSVファイル
PostgreSQLのテーブルにインポートするCSVファイルはこちらになります。
文字型、文字型 ( 全角文字 ) 、数値、日付、日付時刻の項目を入れてみました。
id,name,price,date
0001,鉛筆,30,2024/01/18,2023/08/09 12:10:08
0002,消しゴム,120,2024/01/19,2023/8/17 08:03:12
0003,筆箱,680,2024/1/20,2022/12/28 11:15:30
インポート先のテーブル
インポート先のテーブル定義はこちらです。
CREATE TABLE ms_bungu
(
id character varying(4) NOT NULL,
name character varying(40),
price numeric(10,0),
date date,
datetime timestamp without time zone,
CONSTRAINT ms_bungu_pkey PRIMARY KEY (id)
)
実行するコマンド
実行するコマンドはこちらです。Windowsのbatファイルで作成できるので必要に応じて何回でも実行することができますね。
psql -h localhost -d sampledb -U postgres -c "copy ms_bungu from 'C:\csv\bungu.csv' delimiter ',' csv header encoding 'UTF8';"
「-h」:サーバ名
「-d」:DB名
「-U」:DBユーザ名
「-c」:SQLコマンド
SQLコマンドは「C:\csv\bungu.csv」ファイルをカンマ区切りのCSVとして文字コード「UTF-8」でインポートするよ。という指定となっています。
動作確認
上記のコマンドを実行します。パスワードを聞いてくるので入力する必要があります。
データは3件あるので「COPY 3」と画面に出力されれば成功しています。
コマンド実行後、テーブルを確認するとデータが3件インポートされていました。
以上となります。
ここまでお読みいただきありがとうございました。