jOOQ loadInto 不会在外键约束上抛出错误失败
Posted
技术标签:
【中文标题】jOOQ loadInto 不会在外键约束上抛出错误失败【英文标题】:jOOQ loadInto not throwing error on foreign key constraint fail 【发布时间】:2021-07-23 09:17:43 【问题描述】:我正在将一些表从数据库迁移到另一个(mysql 5.7、jOOQ 3.10),并使用以下代码插入:
try
myDatabase
.loadInto(MYTABLE)
.onErrorAbort()
.batchAll()
.loadRecords(rows)
.fields(MYTABLE.fields())
.execute();
catch (Exception e)
e.printStackTrace();
此表对另一个表有 FK 约束,如果填充了另一个表,则插入工作。但是,如果我不先填充另一个表,我不会收到任何错误,程序“成功”完成,但没有插入任何行。
尝试通过终端/datagrip 执行相同的插入会给我预期的 FK 错误
编辑:也尝试使用.onErrorAbort()
(添加到示例代码中)
【问题讨论】:
那很好,请在下面接受我的回答。 我昨天尝试接受但没有工作。现在它起作用了。再次感谢! 【参考方案1】:你可以通过做检查加载器的错误
// The errors that may have occurred during loading
List<LoaderError> errors = loader.errors();
// loop if you want
LoaderError error = errors.get(0);
【讨论】:
以上是关于jOOQ loadInto 不会在外键约束上抛出错误失败的主要内容,如果未能解决你的问题,请参考以下文章
Oracle SQL Developer - 在外键上添加约束