我想链接几个序列,以便为表的多个列生成默认值。
例如:
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中正在运作。
有什么想法吗?
由于
答案 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
序列。