gpt4 book ai didi

oracle - 插入触发器是否需要提交语句

转载 作者:行者123 更新时间:2023-12-03 22:57:54 25 4
gpt4 key购买 nike

这是实际场景的简化;在哪里查看表 B 上的缺失记录。

假设有两个数据库表 A ; B.

表 A 上有一个插入触发器;它对表 B 执行插入操作(但它没有 COMMIT;)。
如果我们通过JDBC连接器打开一个db连接;并在表 A 上插入;并提交;
触发器的行为是什么?它会自动提交表 B 上的插入语句吗?

最佳答案

触发器不仅不需要 COMMIT,而且不能放入:如果主体的代码包含 COMMIT(或回滚),触发器将不会编译。

这是因为触发器在事务期间触发。当触发器触发时,当前事务仍未完成。当 COMMIT 终止一个事务时,允许它们进入触发器会破坏工作单元。

因此,触发器中执行的更改由发出触发触发器的 DML 的拥有事务提交(或回滚)。

确实,触发器可以在 PRAGMA AUTONOMOUS_TRANSACTION 下运行,在这种情况下,它们必须具有 COMMIT。但这是一个边缘情况,因为在 Oracle 中嵌套事务的有意义的使用很少。

关于oracle - 插入触发器是否需要提交语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47407989/

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