启用PostGIS的Supabase/PostgreSQL插入数据报错:double precision输入语法无效
解决导入含经纬度CSV时的double precision空字符串语法错误
错误invalid input syntax for type double precision:""的核心原因很明确:你的CSV文件里,数值列(包括经纬度或其他float/int类型列)存在空字符串(""),而数据库无法将空字符串转换为float8(double precision)类型。
给你几个直接可行的解决办法:
- 修正源文件空值格式:打开你的Google表格,选中所有数值列里的空单元格,直接删除内容(不要手动输入"")。重新导出CSV时,确保导出设置里没有把空单元格转为空字符串的选项,让空单元格导出为真正的空值(对应数据库的NULL)。
- 导入时强制转换空字符串为NULL:如果用PostgreSQL这类数据库,导入时用
COPY命令指定空字符串对应NULL,示例命令:
这个命令会自动把CSV里的空字符串识别成NULL,就能正常插入float8类型列了。COPY location FROM '/本地CSV文件路径' WITH (FORMAT csv, HEADER, NULL AS ''); - 排查所有数值列:你移除经纬度列仍报错,说明其他数值类型的列也有同样问题,别只盯着经纬度,检查所有需要转成数字类型的列,确保空值都不是""。
内容的提问来源于stack exchange,提问作者PattyB
相关产品推荐
相关产品推荐

