将CSV上传到Postgres表时输入语法无效

时间:2015-04-23 18:25:40

标签: postgresql csv

我对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

1 个答案:

答案 0 :(得分:2)

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