通常SQLでデータを挿入する場合、INSERT文を使って以下のようなクエリを書く。

INSERT INTO web_pages
VALUES ('/', 'top', 'top')
, ('/index.html', 'top', 'top')
, ('/search', 'search', 'item_search')
, ('/cart', 'cart', 'cart_item_list')
;

この程度のデータ数なら問題ないが、これが例えば100行、1000行と増えてくるといちいちINSERT文で挿入してられなくなる。

そんな時に便利なのがPostgreSQLのCOPY文だ。

COPY文でCSVファイルからデータを挿入する

COPY文はPostgreSQL専用のSQL文で、CSVファイルを読み込みデータの挿入をおこなうことができる。

COPY web_pages
FROM '※CSVファイルのフルパス' with format csv;

COPY文の後にテーブル名を指定し、FROM句でCSVファイルのフルパスを指定する。

このクエリを実行すると、指定したテーブルに大量のデータを一気に入れることができる。