1

我有一个非常大的 CSV 文件(几百 MB),我试图将其导入 Postgres 表,出现问题时出现一些主键违规(CSV 文件中的重复记录)

如果是这样,我可以手动过滤掉这些记录,但这些文件是由每小时生成此类数据的程序生成的。我的脚本必须自动将其导入数据库。

我的问题是:有什么办法可以在 COPY 命令或 Postgres 中设置一个标志,以便它可以跳过重复记录并继续将文件导入表?

4

1 回答 1

3

我的想法是通过两种方式解决这个问题:

  1. 使用可以帮助创建重复行的“异常报告”的实用程序,例如在 COPY 过程中的这个。
  2. 通过首先将数据加载到临时表中来更改您的工作流程,对其重复进行按摩(可能与您的目标表连接并用 dup 标志标记临时表中存在的所有记录),然后仅导入丢失的记录并将 dups 发送到异常表。

我个人更喜欢第二种方法,但这取决于您的具体工作流程。

于 2011-04-29T13:48:17.360 回答