HSQLDB&乐观锁定

时间:2014-12-07 11:16:10

标签: hsqldb optimistic-locking

在MySQL中,可以定义一个表列,其值始终由数据库管理器更新:

CREATE TABLE widgets (
    widget_id         INT NOT NULL,
    widget_version    TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

以上,只要创建了新的[widgets]实体,当前时间戳就会用于其version列。并且,无论何时对该实体进行写入/更新,系统都会使用(再次)当前时间戳更新version

有没有办法在HSQLDB 2.3.x中执行此操作?我的Google Fu和HSQLDB文档的使用已经显示为nadda。

2 个答案:

答案 0 :(得分:0)

HSQLDB不支持DEFAULT表达式中的update子句。

HSQLDB确实支持触发器。

CREATE TRIGGER t BEFORE UPDATE ON wiget_version
REFERENCING NEW AS newrow FOR EACH ROW
BEGIN ATOMIC
   SET newrow.widget_version = LOCALTIMESTAMP;
END

答案 1 :(得分:-1)

我刚刚在IRC上与HSQLDB的创始人兼主要维护者Mitch Connor进行了交谈,显然HSQLDB从未构建,旨在处理乐观锁定。

米奇建议我尝试H2