代码之家  ›  专栏  ›  技术社区  ›  Vlad Mihalcea

HyperSQL(HSQLDB)显式共享(读取)锁语法

  •  -1
  • Vlad Mihalcea  · 技术社区  · 10 年前

    根据 HSQLDB documentation ,有两个选择用于更新指令:

    • 用于更新
    • 只读

    如果使用SQL限定符FOR UPDATE,则所有可更新的 结果集的列变得可更新。

    如果游标是用FOR READ ONLY声明的,那么它是不可更新的。

    在HSQLDB中,如果未使用FOR READ ONLY或FOR UPDATE,则所有 结果集的可更新列变为可更新。这会放松 SQL标准规则,在这种情况下,将可更新性限制为仅简单 可更新的SELECT语句(其中所有列都是可更新的)。

    如果 FOR UPDATE 获取独占(写)锁 FOR READ ONLY 指令使用共享(读取)锁?

    1 回复  |  直到 10 年前
        1
  •  1
  •   fredt    10 年前

    锁取决于事务模型。当使用for UPDATE时,LOCKS和MVLOCKS模型锁定表以进行写入。当使用for read ONLY时,它们锁定表以供读取。MVCC模型根本不会锁定表。