Database 在一个事务中解锁共享锁是否取决于在另一个事务中随后给出的共享锁?
我需要证明,如果两个事务在一个表上持有一个共享锁,则后者不能从最后一个获得锁的事务中删除 我该怎么做Database 在一个事务中解锁共享锁是否取决于在另一个事务中随后给出的共享锁?,database,oracle,plsql,locking,Database,Oracle,Plsql,Locking,我需要证明,如果两个事务在一个表上持有一个共享锁,则后者不能从最后一个获得锁的事务中删除 我该怎么做 Share Table Locks (S) 将自动为以下语句中指定的表获取共享表锁: LOCK TABLE table IN SHARE MODE; 以下是允许的操作: 事务持有的共享表锁只允许其他事务 要选择(查询表格) 要锁定特定行,请选择。。。更新 或者执行锁表。。。在共享模式下 声明成功 其他事务不允许更新。多个事务可以同时持有同一个表的共享表锁。在这种情况下,任何事务都不能更新
Share Table Locks (S)
将自动为以下语句中指定的表获取共享表锁:
LOCK TABLE table IN SHARE MODE;
以下是允许的操作:
- 事务持有的
只允许其他事务 要共享表锁
选择
(查询表格)
- 要锁定特定行,请选择。。。更新
- 或者执行锁表。。。在共享模式下
FOR update子句的SELECT
语句而持有行锁)。因此,只有当没有其他事务在同一个表上也具有共享表锁时,具有共享表锁的事务才能更新该表
如果您想要一个示例,可以参考以下链接: