web-dev-qa-db-ja.com

\ copyを使用してa.csvファイルをpostgresqlデータベースにインポートする方法

.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"

欠けているものはありませんか?

2
np00

COPYコマンドにカンマを区切り文字(DELIMITERS ',')ですが、CSVにカンマはありません。代わりに 'text'形式を使用し(これはデフォルトなので、指定する必要はありません)、区切り文字を指定しないでください。

デフォルトはテキスト形式のタブ文字です。

ソース

4
dezso