例如,PostgreSQL具有如下语法:FROM post FOR SHARE;
使用共享时,即使在READ_COMMITTED隔离级别,我们也可以获得共享锁,并且无需实际使用REPEATABLE_READ事务隔离,就可以防止不可重复的读取现象。据我所知,我不记得在Oracle、Server、MySQL或PostgreSQL中看到过任何这样的构造。
我想要确定的是,隔离程度和锁具之间是否有直接的关系。因此,假设我使用可序列化隔离级别启动了一个事务,那么Oracle默认情况下会在该事务中列出的所有表上获取某种类型的"Table“锁,如果是,那么它是什么?我无法找到这个问题的直接答案,但我从许多在线文档中了解到,隔离级别与锁之间没有直接关系。将根据事务中存在的特定SQL语句获取锁,而不是基于事务隔离级别是否已被读取、提交或可序列化,因此,如果存在DML,则将获取只读表锁(RX),如果有类似于LOCK TABLE table IN EXCLUSI