【发布时间】:2012-11-14 03:56:15
【问题描述】:
我目前正在编写一个 Java 应用程序并在自动提交模式下使用批量插入。我的问题是,如果我在批处理中插入 4 行并抛出 BatchUpdateException,因为批处理的第二行触发了重复键违规! DBC 驱动程序是否继续处理剩下的 2 行离开数据库并插入 3 行?还是在第 2 行停止,留下 1 个插入行的数据库?还是回滚整个批次,留下 0 个插入行的数据库状态?
【问题讨论】:
-
你为什么不试着去做呢?显然,在测试数据库上。通常,一批将被完全回滚(或者至少,我希望它是——我从未明确地使用过那个库);但是,打开
autocommit,我怀疑语句可能正在执行WITH NC,这意味着可能会更新某些行。哪些行...取决于驱动程序中如何实现任何“排序”——如果它决定线程化,结果是未定义的。
标签: jdbc db2 spring-batch jdbctemplate