【问题标题】:HyperSQL (HSQLDB) explicit shared (read) lock syntaxHyperSQL (HSQLDB) 显式共享(读取)锁语法
【发布时间】:2023-04-09 23:19:01
【问题描述】:

根据HSQLDB documentation,有两个select-for-updating指令:

  • 供更新
  • 仅供阅读

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

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

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

如果FOR UPDATE 采用排他(写)锁,FOR READ ONLY 指令是否改为采用共享(读)锁?

【问题讨论】:

    标签: sql database transactions locking hsqldb


    【解决方案1】:

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

    【讨论】:

    • 所以 MVLOCKS 没有“FOR SHARE”成语。感谢您的澄清。
    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2022-10-14
    • 2019-03-09
    • 2014-10-01
    • 1970-01-01
    相关资源
    最近更新 更多