小编典典

pgAdmin4:导入CSV

sql

我正在尝试使用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"

我觉得没什么错-有什么想法吗?


阅读 1132

收藏
2021-05-05

共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;"

如果您真的想坚持使用pgAdmin导入工具(我不建议这样做),请选择该Header选项,然后选择适当的选项Delimiter

在此处输入图片说明

2021-05-05