【发布时间】:2013-06-14 00:12:36
【问题描述】:
使用 Oracle 是否可以(使用单个数据库连接):
- 锁定单行 (row1)
- 然后锁定另一行 (row2)
- 释放 row1 上的锁(保留 row2 上的锁)
- 在另一行 (row3) 上获得锁
- 释放 row2 上的锁(保留 row3 上的锁)
- 释放对 row3 的锁定
我意识到 Oracle 支持多种不同类型的锁(我发现这很有帮助:http://broadh2o.net/docs/database/oracle/oracleLocks.html),所以答案可能取决于选择哪种锁。我对独占锁感兴趣 - 即阻止其他连接更新行的锁。
我想知道我是否可以使用单个数据库连接执行操作 1-6。我当然可以为每一行使用单独的数据库连接。似乎锁是使用 COMMIT/ROLLBACK 释放的,因此这表明释放单行上的锁是不可能的。
【问题讨论】:
标签: oracle rowlocking