0

我正在使用 HSQLDB 进行内存数据库测试,并且在使用 UUID 作为主键时遇到了问题。我希望我的主键由数据库生成。生成的 UUID 不必是真正的 uuid,它只需要转到 varchar 列。

我已经尝试过根据本文档应该存在的 UUID 函数:http: //hsqldb.org/doc/guide/builtinfunctions-chapt.html

alter table owner alter column id set default UUID();

但它只是说 UUID 是意外令牌。

有什么线索吗?

4

1 回答 1

3

您可以对 UUID 列值使用触发器。

CREATE TABLE OWNER ( ID BINARY(16) DEFAULT X'' PRIMARY KEY , VAL VARCHAR(10))
CREATE TRIGGER TRIG BEFORE INSERT ON OWNER REFERENCING NEW ROW AS NEW FOR EACH ROW SET NEW.ID = UUID();

注意该列需要一个默认值,但是这个默认值被 UUID() 覆盖

于 2013-01-09T19:33:54.647 回答