HSQLDB - 为表的多个列链接多个序列

时间:2014-03-10 21:09:25

标签: sql hsqldb

我想链接几个序列,以便为表的多个列生成默认值。

例如:

CREATE SEQUENCE seq1 START WITH 1;
CREATE SEQUENCE seq2 START WITH 1;
CREATE TABLE mytable (rid int GENERATED BY DEFAULT AS SEQUENCE seq1 PRIMARY KEY, p63 int GENERATED BY DEFAULT AS SEQUENCE seq2)

不幸的是,发生了错误:“不允许身份定义”

在Postgresql中正在运作。

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

允许首次使用序列。您可以编写BEFORE INSERT TRIGGER以将序列值插入第二列。

答案 1 :(得分:1)

遇到同样的问题,我发现了这篇文章。我使用了另一种解决方法:

CREATE SEQUENCE seq1 START WITH 1;
CREATE SEQUENCE seq2 START WITH 1;

CREATE TABLE mytable (
    rid int DEFAULT nextval('seq1') NOT NULL,
    p63 int NOT NULL
);

ALTER TABLE mytable ALTER p63 SET DEFAULT NEXTVAL('seq2');

创建表后,更改p63列可以在创建表时不接受seq2序列。