我想对序列类型设置一些约束,它只产生偶数或奇数。
问问题
1797 次
2 回答
6
SERIAL
是围绕创建和使用序列的语法糖。
因此,您可以手动完成所有操作并创建适合您需求的特殊类型的序列:
CREATE SEQUENCE tablename_colname_seq INCREMENT BY 2 START WITH 2;
CREATE TABLE tablename (
colname integer NOT NULL DEFAULT nextval('tablename_colname_seq');
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;
或者,如果您已经有一个表和一个SERIAL
列,您可以更改基础序列:
ALTER SEQUENCE tablename_colname_seq INCREMENT BY 2;
可以通过使用psql “描述”表来检索基础序列的名称:
\d tablename
于 2009-08-15T11:29:33.973 回答
4
简单地说,将您的序列设置为增加 2,并从 1 或 2 开始以生成奇数或偶数:
奇怪的
CREATE SEQUENCE odd_seq INCREMENT BY 2 START WITH 1;
甚至
CREATE SEQUENCE even_seq INCREMENT BY 2 START WITH 2;
于 2009-08-15T13:05:15.310 回答