在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。
答案 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。