唯一约束违规导致整个pq.CopyIn postgresql导入失败

时间:2018-06-07 02:14:56

标签: postgresql go pq

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

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

导入比我尝试的其他方法快得多,但我发现只有一条记录中的唯一约束违规会导致整个导入失败。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

如果您愿意接受较慢的处理,可以使用INSERT ... ON CONFLICT DO NOTHING