串行类型在postgresql中只生成偶数或奇数

yjf*_*fuk 1 postgresql auto-increment nextval

我想为串行类型设置一些约束,它只产生偶数或奇数.

Mil*_*dev 5

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;
Run Code Online (Sandbox Code Playgroud)

或者,如果您已经有表和SERIAL列,则可以更改基础序列:

ALTER SEQUENCE tablename_colname_seq INCREMENT BY 2;
Run Code Online (Sandbox Code Playgroud)

可以通过使用psql "描述"表来检索基础序列的名称:

\d tablename
Run Code Online (Sandbox Code Playgroud)