根据HSQLDB documentation,有两个select-for-updating指令:
如果使用SQL限定符,则使用FOR UPDATE,那么所有可更新 结果集的列可以更新。
如果使用FOR READ ONLY声明游标,则它不可更新。
在HSQLDB中,如果没有使用FOR READ ONLY或FOR UPDATE那么全部 结果集的可更新列变为可更新。这放松了 SQL标准规则,在这种情况下,仅限于可更新性 可更新的SELECT语句(其中所有列都是可更新的)。
如果FOR UPDATE
采用独占(写)锁,那么FOR READ ONLY
指令是否会采用共享(读)锁?
答案 0 :(得分:1)
锁取决于事务模型。当使用FOR UPDATE时,LOCKS和MVLOCKS模型将表锁定以进行写入。当使用FOR READ ONLY时,它们锁定表以供读取。 MVCC模型根本不会锁定表格。