首页 > 解决方案 > PostgreSQL 等效于 SQL Server 的 IDENTITY(1, 2)

问题描述

有这个样本表:

create table testingCase (
id integer not null GENERATED ALWAYS AS IDENTITY,
constraint pk_testingCase primary key (id),
description varchar(60)
);

我希望 id自动增加 2 (例如),SQL Server因为那是IDENTITY (1, 2).

如何使用 PostgreSQL 来实现这一点?

标签: sqlpostgresqlauto-increment

解决方案


使用CREATE SEQUENCE 中的序列选项。

create table testing_case (
    id integer not null generated always as identity (increment by 2),
    constraint pk_testing_case primary key (id),
    description varchar(60)
);

insert into testing_case (description) 
values ('a'), ('b'), ('c')
returning *

 id | description 
----+-------------
  1 | a
  3 | b
  5 | c
(3 rows)

推荐阅读