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

问题描述 投票:0回答:2

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

例如:

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正在工作。

任何的想法 ?

谢谢

sql hsqldb
2个回答
1
投票

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


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序列,而在创建表时不接受它。

© www.soinside.com 2019 - 2024. All rights reserved.