PostgreSQL 为非主键Integer列创建自增列

您所在的位置:网站首页 pg修改字段类型为自增 PostgreSQL 为非主键Integer列创建自增列

PostgreSQL 为非主键Integer列创建自增列

2024-02-12 20:18| 来源: 网络整理| 查看: 265

在 PostgreSQL 中,你可以使用序列(Sequence)来为非主键的 Integer 列创建自增列。以下是一个示例:

首先,创建一个序列以生成自增值:

CREATE SEQUENCE app_version_id_seq;

然后,将该序列与你的表关联起来,比如说你有一个 app_versions 表,你想要为 id 列创建自增值:

ALTER TABLE app_versions ALTER COLUMN id SET DEFAULT nextval('app_version_id_seq');

这样,当你向 app_versions 表插入新记录时,如果没有指定 id 的值,它就会自动从序列中获取下一个值作为 id 的值。

这种方法可以让你为任何需要自增值的列创建自增序列,即使它不是主键列。

如下:

CREATE SEQUENCE "public"."app_version_code_seq" start 1; CREATE TABLE "public"."sys_app_version" ( "id" int8 NOT NULL, "app_name" varchar(255) COLLATE "pg_catalog"."default", "version_code" int4 DEFAULT nextval('app_version_code_seq'::regclass), "version_name" varchar(50) COLLATE "pg_catalog"."default", "download_url" varchar(255) COLLATE "pg_catalog"."default", "modify_content" text COLLATE "pg_catalog"."default", "description" text COLLATE "pg_catalog"."default", "download_count" int8, "apk_size" numeric, "apk_md5" varchar(255) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "current_flag" int2 NOT NULL DEFAULT 0, CONSTRAINT "sys_app_version_pkey" PRIMARY KEY ("id"), CONSTRAINT "unique_key" UNIQUE ("app_name", "version_name") ) ; ALTER TABLE "public"."sys_app_version" OWNER TO "postgres"; CREATE INDEX "sys_app_version_app_name_idx" ON "public"."sys_app_version" USING btree ( "app_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST ); COMMENT ON COLUMN "public"."sys_app_version"."id" IS 'id'; COMMENT ON COLUMN "public"."sys_app_version"."app_name" IS 'app名称'; COMMENT ON COLUMN "public"."sys_app_version"."version_code" IS '版本号,通常是一个整数,用于标识不同版本之间的顺序关'; COMMENT ON COLUMN "public"."sys_app_version"."version_name" IS '版本名称,通常是一个字符串,用于展示给用户的版本号'; COMMENT ON COLUMN "public"."sys_app_version"."download_url" IS '下载地址'; COMMENT ON COLUMN "public"."sys_app_version"."modify_content" IS '修改内容'; COMMENT ON COLUMN "public"."sys_app_version"."description" IS '应用描述'; COMMENT ON COLUMN "public"."sys_app_version"."download_count" IS '下载次数'; COMMENT ON COLUMN "public"."sys_app_version"."apk_size" IS '安装包大小 (M)'; COMMENT ON COLUMN "public"."sys_app_version"."apk_md5" IS '安装包md5'; COMMENT ON COLUMN "public"."sys_app_version"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."sys_app_version"."current_flag" IS '是否当前版本 0 否 1 是'; COMMENT ON CONSTRAINT "unique_key" ON "public"."sys_app_version" IS 'app 和 versionName组成唯一键'; COMMENT ON TABLE "public"."sys_app_version" IS '金马app版本表'; ALTER TABLE "public"."sys_app_version" ALTER COLUMN version_code SET DEFAULT nextval('app_version_code_seq');



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3