如何使用 UUID 作为 HSQLDB 列的默认值
Posted
技术标签:
【中文标题】如何使用 UUID 作为 HSQLDB 列的默认值【英文标题】:How to use UUID as a default value for HSQLDB column 【发布时间】:2013-01-09 16:15:17 【问题描述】:我正在使用 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】:您可以对 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() 覆盖
【讨论】:
谢谢,这行得通。尽管如果您不删除 ROW 单词,“OWNER REFERENCING NEW ROW AS NEW”将不起作用以上是关于如何使用 UUID 作为 HSQLDB 列的默认值的主要内容,如果未能解决你的问题,请参考以下文章