填充db,其中任何记录都可能导致异常

时间:2015-01-10 19:14:13

标签: postgresql jdbc postgresql-9.3

我有大量数据(大约3000万),打包到大约20K记录的文件中,我想通过Java程序加载到postgresql数据库中。任何这些记录都可能被破坏或导致约束违规(小于1%,可以忽略不计),在这种情况下,我想简单地丢弃记录并继续。

我一直在尝试使用COPY命令来提高速度,但问题是COPY一旦发现异常就会丢弃该文件的内容!!!

然后我尝试使用带有手动提交连接的预准备语句,我在每个文件的末尾提交,但是再次,如果我在位置10k处获得了​​损坏的记录,则所有先前的记录将再次被丢弃! / p>

我无法使用自动提交连接,因为它会有性能问题。

知道如何完成这项工作吗?

由于

1 个答案:

答案 0 :(得分:1)

一个选项可能是将数据复制到没有约束的表中,然后在添加约束或将数据复制到实时表之前处理该数据以删除侵权记录。

大多数类型的约束都要使用SQL进行评估。