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

如何将英文维基百科页面标题导入PostgreSQL表?

解决PostgreSQL导入维基百科标题文件的问题

问题1:TEXT格式导入时的转义重复错误

PostgreSQL的COPY TEXT默认会把反斜杠(\)当作转义字符,导致//Xek\wi_language被解析为//Xekwi_language,和另一行真实的//Xekwi_language重复触发主键冲突。

解决命令:

COPY titles FROM '/some/path/enwiki-20240401-all-titles-in-ns0' WITH (
  FORMAT text,
  ESCAPE ''  -- 禁用转义,让反斜杠作为普通字符存储
);

如果你的PostgreSQL版本不支持空ESCAPE参数,改用一个不会出现在标题中的特殊字符作为转义标记:

COPY titles FROM '/some/path/enwiki-20240401-all-titles-in-ns0' WITH (
  FORMAT text,
  ESCAPE E'\x00'  -- 用空字符作为转义符,无实际转义效果
);

问题2:CSV格式导入时的额外列错误

CSV格式默认用逗号作为列分隔符,标题中包含的逗号(比如!Alfaro_Vive,_Carajo!里的逗号)会被误判为新列,触发报错。

解决命令:

COPY titles FROM '/some/path/enwiki-20240401-all-titles-in-ns0' WITH (
  FORMAT csv,
  DELIMITER E'\t',  -- 用制表符作为列分隔符,标题中不存在该字符
  QUOTE '',         -- 禁用引号解析逻辑
  HEADER false      -- 文件无表头行
);

额外提示

如果服务器无法直接访问文件路径,可以结合管道直接导入压缩文件,避免提前解压:

gunzip -c /some/path/enwiki-20240401-all-titles-in-ns0.gz | psql -d thisdb -c "COPY titles FROM STDIN WITH (FORMAT text, ESCAPE '')"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:55:31