我在内存数据库测试中使用HSQLDB,并且在使用UUID作为主键时遇到了问题。我希望我的主键由数据库生成。生成的UUID不必是真正的uuid,它只需要转到varchar列。
我已根据此文档尝试了应存在的UUID功能:http://hsqldb.org/doc/guide/builtinfunctions-chapt.html
alter table owner alter column id set default UUID();
但它只是说UUID是意外的令牌。
任何线索?
答案 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()
覆盖