はじめに
COPYコマンドでロードするCSVに不要な列が存在する場合、COPYコマンドのオプションでロード対象外の列に”FILLER”を設定しロードさせないことができます。以下でその方法についてご紹介します。
構文
COPYコマンドで”FILLER”を設定する構文は以下になります。COPY <TABLE名> (<列名> [FILLER] [データ型],…) FROM LOCAL ‘<CSVファイル名>’…
※ロードに不要な列には任意の列名と”FILLER”、データ型を設定します。※ロードに必要な列は列名のみ設定します。
実行例
CSVの1と999をロード対象外として「あいうえお」のみロードする例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
■ CSVを確認します $ cat test.csv 1,あいうえお,999 ■ testテーブルを確認します dbadmin=> \d test List of Fields by Tables Schema | Table | Column | Type | Size | Default | Not Null | Primary Key | Foreign Key --------+-------+--------+-------------+------+---------+----------+-------------+------------- public | test | col1 | varchar(15) | 15 | | f | f | ■ ロード対象外の列に任意の列名とFILLER、データ型を設定しtestテーブルにロードします dbadmin=> copy test(col_f1 filler int,col1,col_f2 filler int) from local './test.csv' delimiter ',' direct; Rows Loaded ------------- 1 ■ testテーブルを検索します dbadmin=> select * from test; col1 ------------ あいうえお |