PostgreSQL刪除或修改枚舉

刪除值時的錯誤.png

場景

當使用了postgresql的枚舉類型,已經(jīng)有表使用了這個枚舉時。因為有強關(guān)聯(lián)是不能直接刪除或者更改枚舉項的。

解決方案

新建一個新的枚舉類型去替換原有的枚舉類型。

注意:如有線上項目注冊了枚舉類型CLR,相關(guān)項目需要釋放數(shù)據(jù)庫資源(重啟服務)

--1. 更改原枚舉名稱
ALTER TYPE "public"."et_type" RENAME TO "et_type2";

--2. 創(chuàng)建用于替換的枚舉
CREATE TYPE "public"."et_type" AS ENUM ('type1', 'type2', 'type3');

--3. 更改枚舉擁有者
ALTER TYPE "public"."et_type" OWNER TO "postgres";

--4. 更改表對枚舉的引用
ALTER TABLE "public"."table" ALTER COLUMN "type" TYPE "et_type" USING "type"::text::et_type;

--5. 手動刪除更改名字后的枚舉
DROP TYPE "public"."et_type2";
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容