在postgresql数据库中,是不能直接使用UUID函数的,需要手动安装 uuid 的相关文件,才能应用UUID相关的函数.
在安装了 uuid-ossp 文件后,通过 select 语句 调用UUID的相应函数即可获取到随机id;
检查postgresql是否支持uuid自动生成函数
select uuid_generate_v4();
若查询报错,创建扩展
解决方法:
1.安装 uuid-ossp 文件,在sql编辑器中编写并执行该语句:
create extension "uuid-ossp" ;
2.调用UUID的相应函数,:
select uuid_generate_v4() 或 select uuid_generate_v1()` 皆可.
CREATE TABLE "public"."t_uuid" (
"id" varchar(36) COLLATE "pg_catalog"."default" NOT NULL DEFAULT uuid_generate_v4(),
"name" varchar(40) COLLATE "pg_catalog"."default",
CONSTRAINT "t_uuid_pkey" PRIMARY KEY ("id")
);
ALTER TABLE "public"."t_uuid" ALTER COLUMN "id" SET DEFAULT uuid_generate_v4();
CREATE SEQUENCE "public"."t_student_id_seq"
INCREMENT 1
MINVALUE 1
MAXVALUE 9999999999
START 1
CACHE 1;
CREATE TABLE "public"."t_student" (
"id" int4 NOT NULL DEFAULT nextval('t_student_id_seq'::regclass),
"name" varchar(40) COLLATE "pg_catalog"."default",
CONSTRAINT "t_student_pkey" PRIMARY KEY ("id")
);
ALTER TABLE "public"."t_student" ALTER COLUMN "id" SET DEFAULT
nextval('t_student_id_seq'::regclass);
方法二:将主键字段定义为serial4类型
CREATE TABLE "public"."t_student_id_seq" (
"id" serial4,
"name" varchar(40),
PRIMARY KEY ("id")
);
查看DDL,会发现方法一和方法二结构是一致的,不同的是方法一定义的序列在表删除时,不会被清除。