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 に答える