【发布时间】:2018-08-16 21:04:05
【问题描述】:
是否可以在 Oracle 11g 上允许在 2 个不同事务的同一行上进行多个 UPDATE ?
例如在第一笔交易中
UPDATE MYTABLE SET COLUMN1 = 'value1'
并且在第二个事务中,更新被第一个事务锁定。
UPDATE MYTABLE SET COLUMN1 = 'value2'
我需要允许这两个更新在他们自己的事务中可见。
在我的上下文中,两个事务都将在最后回滚。
这就像与每个事务关联的 1 级缓存,所有修改都将被应用和读取,直到提交。
【问题讨论】:
-
我认为这是不可能的。您想通过更新此表来达到什么目的?
-
我有数百个使用 jdbc 的 Java 集成测试。每个测试都封装在一个预言机事务中。在测试开始时,我根据特定的测试条件更新数据库。我运行测试,然后回滚事务以将数据库保留为初始状态。这种方法的局限性在于我只能按顺序运行测试,不能并行运行。我正在寻找一种方法来隔离事务的修改,而不会像一级缓存那样阻塞其他事务。
-
您将无法在两个不同的事务中更新同一行。当然,您可以更新测试中的不同行,这样您就可以并行运行它们。
标签: oracle transactions isolation