1. 程式人生 > 其它 >postgresql 插入資料 設定 自動生成主鍵為uuid格式

postgresql 插入資料 設定 自動生成主鍵為uuid格式

技術標籤:postgresql相關postgresql

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());