为什么我在导入 CSV 时在 postgresql 中得到 "Invalid input syntax for type integer"?

Why am I getting "Invalid input syntax for type integer" in postgresql when importing a CSV?

我正在尝试将 .csv 文件导入我的 postgresql 数据库。 我创建了一个 table 如下:

CREATE TABLE accounts
(
    acc_id integer,
    acc_name text,
    website text,
    lat numeric,
    longe numeric,
    primary_poc text,
    sales_rep_id integer
)

然后我用下面的命令导入.csv文件

COPY accounts(acc_id,acc_name,website,lat,longe,primary_poc,sales_rep_id) 
FROM 'D:\accounts.csv' DELIMITER ';' CSV ;

我的 .csv 文件包含以下内容:

1;Walmart;www.walmart.com;40.23849561;-75.10329704;Tamara Tuma;321500
2;Exxon Mobil;www.exxonmobil.com;41.16915630;-73.84937379;Sung Shields;321510
3;Apple;www.apple.com;42.29049481;-76.08400942;Jodee Lupo;321520

但是,这不起作用并出现以下消息:

ERROR:  invalid input syntax for type integer: "1"
CONTEXT:  COPY accounts, line 1, column acc_id: "1"
SQL state: 22P02

CSV 中可能有 BOM

  • hexdump 文件,并检查前三个字符
  • (和)使用编辑器删除 BOM
  • (or) 再次导出,没有 BOM(应该有复选标记,即使在 Microsoft "software")