PostgreSQL14.4に列挙型(ENUM)値を変更する方法

環境
OSバージョンの確認

# cat /etc/redhat-release
Rocky Linux release 9.0 (Blue Onyx)

PostgreSQLバージョンの確認

# psql --version
psql (PostgreSQL) 14.4

構文
1.ENUM値を作成します

CREATE TYPE 列挙型名 AS ENUM (値1 , 値2 ,...)

CREATE TYPEを使って、列挙型(ENUM)を作成します。

2.ENUM値を変更する構文

ALTER TYPE 列挙型(ENUM値) RENAME VALUE '変更前の値' TO '変更後の値';

PostgreSQL 14.4に列挙型(ENUM値)値を追加する手順
1.列挙型を作成します

postgres=# create type citys as enum('tokyo','oosaka','fukuoka');
CREATE TYPE

2.列挙型(enum)値を確認します
SQL構文

select pn.nspname,  
       pt.typname,  
       pe.enumlabel
from pg_type pt 
   join pg_enum pe on pt.oid = pe.enumtypid  
   join pg_catalog.pg_namespace pn ON pn.oid = pt.typnamespace

実行結果

nspname	typname	enumlabel
public	citys	tokyo
public	citys	oosaka
public	citys	fukuoka
public	citys	yokohama

3.列挙型(ENUM)値を変更します

postgres=# ALTER TYPE citys RENAME VALUE 'tokyo' TO 'shinagawa';
ALTER TYPE

列挙型(ENUM)値変更後を確認します
SQL構文

select pn.nspname,  
       pt.typname,  
       pe.enumlabel
from pg_type pt 
   join pg_enum pe on pt.oid = pe.enumtypid  
   join pg_catalog.pg_namespace pn ON pn.oid = pt.typnamespace

実行結果

nspname	typname	enumlabel
public	citys	oosaka
public	citys	fukuoka
public	citys	yokohama
public	citys	shinagawa

 

PostgreSQL

Posted by arkgame