postgresql 插入数据 设置 自动生成主键为uuid格式:
通常postgresql 主键设置为int 自增类型,但是也有很多业务场景需要uuid
1、数据库插件安装:
安装 uuid_generate_v4() 扩展函数
create extension "uuid-ossp"
检验函数
select uuid_generate_v4()
2、 创建表结构格式:
create table table_name ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4() );
比如:
CREATE TABLE "public"."pipe_car" (
"id" UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
"pipe_id" varchar(50) COLLATE "pg_catalog"."default",
"car_id" varchar(8) COLLATE "pg_catalog"."default"
);
或者:
CREATE TABLE "public"."pipe_car" (
"id" varchar(50) COLLATE "pg_catalog"."default" NOT NULL DEFAULT uuid_generate_v4(),
"id" UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
"pipe_id" varchar(50) COLLATE "pg_catalog"."default",
"car_id" varchar(8) COLLATE "pg_catalog"."default",
CONSTRAINT "pole_pole_cable_pkey" PRIMARY KEY ("id")
);
3、修改为uuid的操作:
你不能只是把一个int4加到uuid;这将是一个无效的uuid,只有32位设置,高96位为零。
如果要生成新的UUID以完全替换整数,并且如果没有这些整数的现有外键引用,则可以使用实际生成新值的假转换。
不要在没有数据备份的情况下运行。它永久地抛弃了colA中的旧值。
ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID USING (uuid_generate_v4());