在2.0版中,没有直接的功能。您可以在表上定义一个BEFORE INSERT触发器来执行此操作:
CREATE TABLE company ( id bigint PRIMARY KEY, name varchar(128) NOT NULL CHECK (name <> '') );CREATE TRIGGER trigg BEFORE INSERTON company REFERENCING NEW ROW AS newrow FOR EACH ROWSET newrow.id = NEXT VALUE FOR seq_company_id;
并插入而不使用任何vlue作为ID
INSERT INTO COMPANY VALUES null,’test’
HSQLDB 2.1和更高版本的更新: 已添加了一项功能来支持此功能。
CREATE SEQUENCE SEQUCREATE TABLE company ( id bigint GENERATED BY DEFAULT AS SEQUENCE SEQU PRIMARY KEY, name varchar(128) NOT NULL CHECK (name <> '') );
请参见《创建表》下的《指南》http://hsqldb.org/doc/2.0/guide/databaseobjects-
chapt.html#dbc_table_creation
此外,2.1和更高版本具有PostgreSQL兼容模式,在该模式下,它接受PostgreSQL CREATE
TABLE语句,该语句引用DEFAULT子句中的序列并将其转换为HSQLDB语法。



