【问题标题】:Invalid Input Syntax when Uploading CSV to Postgres Table将 CSV 上传到 Postgres 表时输入语法无效
【发布时间】:2015-04-23 18:25:40
【问题描述】:

我对 postgres 还很陌生。我正在尝试将文件从我的计算机复制到 postgres 服务器。我首先用

初始化表
CREATE TABLE coredb (
id text, lng numeric(6,4), lat numeric(6,4),
score1 numeric(5,4), score2 numeric(5,4));

我的 CSV 看起来像这样:

     ID       lng      lat    score1   score2
      1     -72.298  43.218   0.561     0.894
      2     -72.298  43.218   0.472     0.970
      3     -72.285  43.250   0.322     0.959
      4     -72.285  43.250   0.370     0.934
      5     -72.325  43.173   0.099     0.976
      6     -72.325  43.173   0.099     0.985

但是,当我尝试复制 CSV 时,出现以下错误

COPY coredb FROM '/home/usr/Documents/filefordb.csv' DELIMITER ',' CSV;
ERROR:  invalid input syntax for type numeric: "lng"
CONTEXT:  COPY nhcore, line 1, column lng: "lng"

奇怪的是,当我将 CREATE TABLE 参数设置为所有列的文本时,csv 导入就很好了。有人可以解释为什么会这样吗?我正在使用 psql 9.4.1

【问题讨论】:

  • 您确定您的 CSV 看起来像这样吗?那里面没有逗号。看起来您需要将您的 DELIMITER ',' 更改为更好的并使用 WITH HEADER true 选项

标签: postgresql csv


【解决方案1】:

您必须使用HEADER true 告诉COPY 跳过标题行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    相关资源
    最近更新 更多