You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pgAdmin 4导入CSV至PostgreSQL时遇整数输入语法错误

解决PostgreSQL导入CSV时的"invalid input syntax for integer"错误

这个问题我碰到过好多次,核心原因其实很明确,我帮你一步步拆解解决:

错误根源分析

你的CSV文件用**分号(;)作为字段分隔符,但PostgreSQL的COPY命令默认是用逗号(,)来分割字段的;同时CSV第一行的表头被当成了数据行,数据库试图把"id;date;time;latitude;longitude"这个字符串塞进整数类型的id字段,直接触发了语法错误。另外还有个隐藏坑:你的纬度/经度用的是逗号(,)**作为小数点分隔符,这和PostgreSQL默认的点(.)格式不兼容,不处理的话后续导入也会失败。

修正后的导入命令

根据你的场景,分两种导入方式给出修正后的命令:

1. 服务器端导入(文件存储在PostgreSQL服务器上)

COPY kordinater.test(id, date, "time", latitude, longitude)
FROM '/服务器上的文件绝对路径/你的数据.csv'
DELIMITER ';'
CSV HEADER
DECIMAL_SEPARATOR ',';

2. 客户端导入(文件在你的本地机器,用psql的\copy)

\copy kordinater.test(id, date, "time", latitude, longitude)
FROM '/本地文件路径/你的数据.csv'
WITH (
  DELIMITER ';',
  CSV HEADER,
  DECIMAL_SEPARATOR ','
);

关键参数说明

  • DELIMITER ';':告诉PostgreSQL用分号匹配你的CSV字段分隔规则
  • CSV HEADER:声明第一行是表头,跳过不导入到数据库
  • DECIMAL_SEPARATOR ',':让数据库识别逗号作为小数点,正确转换59,86411203这类数值
  • 明确列出字段名:避免CSV字段顺序和表结构不一致导致的错位问题

额外注意事项

  • 服务器端导入要确保PostgreSQL进程有读取该文件的权限
  • 客户端导入用本地路径即可,不需要考虑服务器权限问题
  • CSV模式会自动处理换行、特殊字符等情况,比纯文本导入更稳定

内容的提问来源于stack exchange,提问作者Slotmachine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:58:09