Postgres 10 或更高版本
serial
列(见下文)保持不变。但是考虑一个IDENTITY
列。Postgres 10 实现了这个标准的 SQL 特性。
.手册CREATE TABLE
中的基本语法和信息。其主要作者 Peter Eisentraut
的此博客条目中的详细解释。
IDENTITY
用列创建表
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
);
将 IDENTITY
列添加到现有表
表可能会或可能不会填充行。
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
同时使其成为 PK(表还不能有 PK):
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
有关的:
替换 serial
为IDENTITY
列
看:
Postgres 9.6 或更高版本
(或任何版本,真的。)
改用serial
伪数据类型:
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
它自动创建和附加序列对象,并从序列中设置DEFAULT
为nextval()
。它可以满足您的所有需求。
我在示例中使用了小写标识符。使用 Postgres 让您的生活更轻松。