PostgreSQL で CSV を bash でロードする

 
毎回忘れてググるのでメモ。

ダブルクオートで値が囲まれたクライアント側のCSVをロードする。
なお 1 行目はヘッダーなのでスキップ。

$ psql -h hoge.rds.amazonaws.com -d mydatabase -U myuser \
-c "\copy schema.table01 from 'data01.csv' delimiter ',' quote '\"' header csv;"

 
特定のカラムだけロードするならこう。
SequenceでIDを自動付与するカラムがある場合などに使う。

$ psql -h hoge.rds.amazonaws.com -d mydatabase -U myuser \
-c "\copy schema.table01(col2, col4, col5) from 'data_part01.csv' delimiter ',' quote '\"' header csv;"

 
いずれもクライアント側にファイルがある前提。
AWS RDS だとOSにアクセス出来ないし。