HyperSQL (HSQLDB) 显式共享(读取)锁语法
Posted
技术标签:
【中文标题】HyperSQL (HSQLDB) 显式共享(读取)锁语法【英文标题】:HyperSQL (HSQLDB) explicit shared (read) lock syntax 【发布时间】:2015-01-29 14:50:30 【问题描述】:根据HSQLDB documentation,有两个select-for-updating指令:
供更新 仅供阅读如果使用 SQL 限定符 FOR UPDATE,那么所有可更新的 结果集的列变得可更新。
如果游标是用 FOR READ ONLY 声明的,那么它是不可更新的。
在 HSQLDB 中,如果未使用 FOR READ ONLY 或 FOR UPDATE,则所有 结果集的可更新列变为可更新的。这放松了 在这种情况下将可更新性限制为仅简单的 SQL 标准规则 可更新的 SELECT 语句(所有列都是可更新的)。
如果FOR UPDATE
采用排他(写)锁,FOR READ ONLY
指令是否改为采用共享(读)锁?
【问题讨论】:
【参考方案1】:锁取决于事务模型。 LOCKS 和 MVLOCKS 模型在使用 FOR UPDATE 时锁定表以进行写入。当使用 FOR READ ONLY 时,它们会锁定表以供读取。 MVCC 模型根本不锁表。
【讨论】:
所以 MVLOCKS 没有“FOR SHARE”成语。感谢您的澄清。以上是关于HyperSQL (HSQLDB) 显式共享(读取)锁语法的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Hypersql 数据库(HSQLDB)中设置 Rank 函数
无法以新用户身份连接到 HyperSQL / HSQLDB 数据库
HSQLDB (HyperSQL) - 如何以毫秒精度将 UNIX 时间戳作为数字获取