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

PostgreSQL COPY导入CSV时,字段含撇号致未终止引号字段错误

PostgreSQL COPY导入含撇号的CSV报错解决方法

问题分析

当前COPY命令存在两个核心问题:

  1. 语法错误:字段列表末尾多了逗号,文件路径未闭合单引号
  2. 未指定CSV格式解析规则:默认COPY使用text格式解析,无法正确识别双引号包裹的字段,导致包含撇号的字段被误判为未闭合的引用字段

解决方案

1. 修正COPY命令基础语法

先修复语法层面的错误:

  • 移除字段列表最后一个字段后的逗号
  • 闭合文件路径的单引号

2. 添加CSV格式解析参数

明确指定CSV格式规则,让PostgreSQL正确识别双引号内的撇号为普通字符:

  • FORMAT CSV:告知数据库按CSV规则解析文件
  • HEADER:跳过CSV第一行的表头内容
  • DELIMITER ',':指定字段分隔符为逗号(匹配报错信息中的行格式)
  • QUOTE '"':指定字段包裹符为双引号(默认值,显式指定避免歧义)

完整可用的COPY命令

COPY "NewTable" (
    "NAME",
    "OTHER DATA"
)
FROM 'E:\\PostgreSQL\\Sourcefile.csv'
FORMAT CSV
HEADER
DELIMITER ','
QUOTE '"';

关键说明

  • 双引号包裹的字段内的撇号(')无需额外转义,PostgreSQL会自动将其视为普通文本字符
  • 该命令无需修改原始800万条数据的CSV文件,可直接执行导入
  • 如果CSV文件使用非UTF-8编码(如GBK),可添加ENCODING 'GBK'参数适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:47:40