赞
踩
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());
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。