pgAdmin4:导入CSV

时间:2018-06-07 22:55:53

标签: sql postgresql postgis pgadmin pgadmin-4

我正在尝试使用pgAdmin4导入CSV。我使用查询

创建了表
CREATE TABLE i210_2017_02_18
(
  PROBE_ID character varying(255),
  SAMPLE_DATE timestamp without time zone,
  LAT numeric,
  LON numeric,
  HEADING integer,
  SPEED integer,
  PROBE_DATA_PROVIDER character varying(255),
  SYSTEM_DATE timestamp without time zone
)

我的CSV读取的标题和第一行是......

PROBE_ID,SAMPLE_DATE,LAT,LON,HEADING,SPEED,PROBE_DATA_PROVIDER,SYSTEM_DATE
841625st,2017-02-18 00:58:19,34.11968,-117.80855,91.0,9.0,FLEET53,2017-02-18 00:58:58

当我尝试使用导入对话框时,该过程失败,错误代码为1:

ERROR:  invalid input syntax for type timestamp: "SAMPLE_DATE"
CONTEXT:  COPY i210_2017_02_18, line 1, column sample_date: "SAMPLE_DATE"

对我来说似乎没有任何错误 - 任何想法?

2 个答案:

答案 0 :(得分:1)

根据您的表格结构,此导入将在HEADINGSPEED列中失败,因为它们的值为小数,您将其声明为INTEGER。删除小数或将列类型更改为例如NUMERIC

话虽如此,只需从pgAdmin尝试此操作(考虑到文件和数据库位于同一服务器中):

COPY i210_2017_02_18 FROM '/home/jones/file.csv' CSV HEADER;

如果您正在处理远程服务器,请使用控制台中的psql进行尝试:

$ cat file.csv | psql yourdb -c "COPY i210_2017_02_18 FROM STDIN CSV HEADER;"

您还可以查看answer

如果你真的想坚持使用我不鼓励的pgAdmin导入工具,只需选择Header选项和正确的Delimiter

enter image description here

答案 1 :(得分:0)

您是否设置了标题选项= TRUE? Import settings

应该有用。