gpt4 book ai didi

oracle - 批量插入: is there a way to just skip on next record when a constraint is violated?

转载 作者:行者123 更新时间:2023-12-02 08:14:49 25 4
gpt4 key购买 nike

我正在使用 mybatis 在 Oracle DB 上执行大规模批量插入。

我的过程非常简单:我从文件列表中获取记录,并在对数据进行一些检查后将它们插入到特定的表中。

-每个文件平均包含 180.000 条记录,我可以有多个文件。

-某些记录可以存在于多个文件中。

-如果每一列都匹配,则一条记录与另一条记录相同,换句话说,我不能简单地对特定字段执行检查。我在数据库中定义了一个约束,以确保满足此条件。

简单地说,我只想忽略 Oracle 在违反约束时向我提供的约束异常。

记录不存在?-->插入

记录已经存在?-->继续

这可以用 mybatis 实现吗?或者我可以在数据库级别完成一些事情吗?

我可以控制应用程序服务器和数据库,因此请告诉我完成此任务的最有效方法是什么(即使我想避免过多依赖数据库......)

当然,我想避免在每次插入之前执行 select*...考虑到我正在处理的记录数量会破坏我的应用程序的性能

最佳答案

使用IGNORE_ROW_ON_DUPKEY_INDEX提示:

insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(table_name index_name) */
into table_name
select * ...

关于oracle - 批量插入: is there a way to just skip on next record when a constraint is violated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30381336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com