如何将UUID用作HSQLDB列的默认值

时间:2013-01-09 16:15:17

标签: hsqldb

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

我已根据此文档尝试了应存在的UUID功能:http://hsqldb.org/doc/guide/builtinfunctions-chapt.html

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

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

任何线索?

1 个答案:

答案 0 :(得分: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()

覆盖