【问题标题】:unique constraint violation causes entire pq.CopyIn postgresql import to fail违反唯一约束会导致整个 pq.CopyIn postgresql 导入失败
【发布时间】:2018-11-16 19:52:35
【问题描述】:

我正在尝试使用 pq.CopyIn 进行批量导入,如下所述:

https://godoc.org/github.com/lib/pq

导入比我尝试过的其他方法快得多,但我发现仅在一条记录中违反唯一约束将导致整个导入失败。

有没有办法改变这种行为? 是否有一些简单的方法可以找出导致问题的记录? 有没有比 pq.CopyIn 更好的选择来快速导入?

对于我的应用程序,我可以对我正在导入的数据进行一些查询和检查,但我希望有更好的方法。

【问题讨论】:

    标签: postgresql go pq


    【解决方案1】:

    错误消息应该会为您提供问题所在的线索。

    由于COPY 语句(与所有 SQL 语句一样)在其自己的事务中运行,因此单个错误将回滚整个工作。

    如果您愿意忍受较慢的处理速度,可以求助于INSERT ... ON CONFLICT DO NOTHING

    【讨论】:

    • 错误消息是pq: duplicate key value violates unique constraint。没有迹象表明哪条记录失败了。
    • 看起来像 pq 隐藏了错误消息的上下文和其他细节。
    猜你喜欢
    • 2015-12-17
    • 1970-01-01
    • 2019-10-07
    • 2013-09-16
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多