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

HyperSQL(HSQLDB)显式共享(读取)锁语法,sql,database,transactions,locking,hsqldb,Sql,Database,Transactions,Locking,Hsqldb,根据,有两个用于更新的select指令: 更新 只读 如果使用SQL限定符FOR UPDATE,则所有可更新的 结果集的列将变得可更新 如果游标声明为只读,则它不可更新 在HSQLDB中,如果未使用FOR READ ONLY或FOR UPDATE,则所有 结果集的可更新列变为可更新列。这可以缓解压力 SQL标准规则,在这种情况下,可更新性仅限于 可更新的SELECT语句(其中所有列都是可更新的) 如果更新的采用独占(写)锁,则只读的指令是否采用共享(读)锁?锁取决于事务模型。LOCKS和MV

根据,有两个用于更新的select指令:

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

如果游标声明为只读,则它不可更新

在HSQLDB中,如果未使用FOR READ ONLY或FOR UPDATE,则所有 结果集的可更新列变为可更新列。这可以缓解压力 SQL标准规则,在这种情况下,可更新性仅限于 可更新的SELECT语句(其中所有列都是可更新的)


如果更新的
采用独占(写)锁,则只读的
指令是否采用共享(读)锁?

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

因此MVCC没有“FOR SHARE”习惯用法。谢谢你澄清。