【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件インポートされていました。

以上となります。

ここまでお読みいただきありがとうございました。

PostgreSQL

Posted by だゆう