postgresql 插入資料 設定 自動生成主鍵為uuid格式
阿新 • • 發佈:2020-12-28
postgresql 插入資料 設定 自動生成主鍵為uuid格式:
通常postgresql 主鍵設定為int 自增型別,但是也有很多業務場景需要uuid
1、資料庫外掛安裝:
安裝uuid_generate_v4()擴充套件函式
create extension "uuid-ossp"
檢驗函式
selectuuid_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());