【问题标题】:Ignore row if duplicate at CSV import如果在 CSV 导入时重复,则忽略行
【发布时间】:2018-06-21 09:56:42
【问题描述】:

我想知道这是否可能?如果由于某种原因无法导入一行 前任。重复的主键、错误的输入类型等是否可以忽略并移至下一行?

我收到了

ERROR:  duplicate key value violates unique constraint "team_pkey"
DETAIL:  Key (team)=(DEN) already exists.
CONTEXT:  COPY team, line 23: "DEN,Denver,Rockets,A"

文件有很多错误,而且很大,所以可以忽略不能插入的行吗?

【问题讨论】:

标签: postgresql csv


【解决方案1】:

To ignore duplicate keys during 'copy from' in postgresql 中描述了处理重复键问题的解决方案 - 简而言之,使用不受约束的临时表和 select distinct on uniquefield 到目标表中。

另一种方法是使用pgLoader。不幸的是,文档似乎已经从网站上消失了,但在 the author's site 上有几篇教程文章。它具有丰富的功能来帮助您读取有问题的数据,并且可以执行诸如将被拒绝的行存储在单独的文件中、转换字段等操作。

有些事情可能不会立即显而易见:pgLoader 版本 2 是用 Python 编写的,版本 3 是用 Lisp 编写的。两者都可以从 GitHub 页面获取。

【讨论】:

    猜你喜欢
    • 2014-02-24
    • 1970-01-01
    • 2023-03-24
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多