.csvファイルをpostgresqlデータベースにインポートしようとしています。私はそのためにwin7マシンでpgadmin IIIを使用しています。
私のクエリは次のようになります:
\COPY pop_grid(GRID_ID, POP_TOT, YEAR, METHD_CL, CNTR_CODE, DATA_SRC) from 'C:\...\popgrid.csv' DELIMITERS ',' CSV;
.csv内のデータは次のようになります。
1kmN5142E2862 2 2006 D IS AIT
1kmN5141E2862 13 2006 D IS AIT
私のテーブル:
CREATE TABLE pop_grid
(
GRID_ID text PRIMARY KEY,
POP_TOT int NOT NULL,
YEAR date NOT NULL,
METHD_CL varchar(2) NOT NULL,
CNTR_CODE varchar(32) NOT NULL,
DATA_SRC varchar(4) NOT NULL
);
このエラーが発生するのはなぜですか?
ERROR: Missing data for column "pop_tot"
CONTEXT: COPY pop_grid, Row 1: "1kmN5142E2862;2;2006;D;IS;AIT"
欠けているものはありませんか?
COPY
コマンドにカンマを区切り文字(DELIMITERS ','
)ですが、CSVにカンマはありません。代わりに 'text'形式を使用し(これはデフォルトなので、指定する必要はありません)、区切り文字を指定しないでください。
デフォルトはテキスト形式のタブ文字です。
( ソース )