Postgresql

如何使用 copy 將 .csv 文件導入 postgresql 數據庫?

  • June 6, 2013

我正在嘗試將 .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 中沒有逗號。請改用“文本”格式(這是預設格式,因此您不必指定它)並且不指定分隔符:

預設為文本格式的製表符。

來源

引用自:https://dba.stackexchange.com/questions/18821