通常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ファイルのフルパスを指定する。
このクエリを実行すると、指定したテーブルに大量のデータを一気に入れることができる。