PG实现主键自增

发布时间 2024-01-06 23:57:10作者: euv
CREATE TABLE "t1"(
"id" SERIAL PRIMARY KEY
);
CREATE SEQUENCE "t1_seq" AS INTEGER;

CREATE TABLE "t1" (
    "id" INTEGER DEFAULT nextval('t1_seq') PRIMARY KEY
);

ALTER SEQUENCE "t1_seq" OWNED BY "t1"."id";

SEQUENCE是个特殊的表,能够输出连续递增的正整数,重启数据库实例不影响连续递增性。
SEQUENCE的数据类型可以选择SMALLINTEGER,INTEGER,BIGINTEGER,依次对应SMALLSERIAL,SERIAL,BIGSERIAL.

-- 删除Sequence
DROP SEQUENCE "public_table_seq"; -- 删除序列。如果存在表的主键依赖此序列,会删除失败,需要先删除表,或导出表数据,修改主键默认值不再依赖此序列,再导入数据。