PostgreSQL独自のSQLコマンドとしてCOPYコマンドが実装されています。
これはサーバ上にあるCSVファイルからある表に、一括してデータを流し込むこ操作を行うことの出来るコマンドとなっています。
コマンドは通常のSQLと同様にpsql上から発行できます。
表の全列にデータを流し込む場合には、以下の書式になります。
1 |
% COPY 表名 FROM 'CSVファイルのフルパス' WITH CSV; |
insert分などと同様に、表の一部の列にだけデータを流し込むことも可能です。
その場合のSQLの記述方法は以下となります。
1 |
% COPY 表名(列名1,列名2,…) FROM 'CSVファイルのフルパス' WITH CSV; |
また、サーバ側にCSVファイルがない場合、psqlの標準入力からCSV形式でデータを入力することも可能です。その場合には以下の書式となります。
1 2 3 |
% COPY 表名 FROM STDIN WITH CSV; % COPY 表名(列名1,列名2,…) FROM STDIN WITH CSV; |
PostgreSQLCOPYコマンドはデータ一括登録時時に便利なので覚えておくのも良いかもしれません。