【问题标题】:pgAdmin4: Importing a CSVpgAdmin4:导入 CSV
【发布时间】:2018-06-07 22:55:53
【问题描述】:

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

在我看来没有错 - 有什么想法吗?

【问题讨论】:

  • 首先只需尝试一个简单的“插入 i210_2017_02_18”,如果失败,请减少要插入的列。在尝试导入之前确认它有效
  • 确保 SAMPLE_DATE 列有统一格式的数据

标签: sql postgresql postgis pgadmin pgadmin-4


【解决方案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

【讨论】:

    【解决方案2】:

    您是否设置了 Header-Option = TRUE? Import settings

    应该可以的。

    【讨论】:

      猜你喜欢
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多