【发布时间】: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