PostgreSQL 14.4に列挙型(ENUM値)値を追加する方法

環境
OSバージョンの確認

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# cat /etc/redhat-release
Rocky Linux release 9.0 (Blue Onyx)
# cat /etc/redhat-release Rocky Linux release 9.0 (Blue Onyx)
# cat /etc/redhat-release
Rocky Linux release 9.0 (Blue Onyx)

PostgreSQLバージョンの確認

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# psql --version
psql (PostgreSQL) 14.4
# psql --version psql (PostgreSQL) 14.4
# psql --version
psql (PostgreSQL) 14.4

構文
1.ENUM値を作成します
CREATE TYPE 列挙型名 AS ENUM (値1 , 値2 ,…)
CREATE TYPEを使って、列挙型(ENUM)を作成します。

2.ENUM値を追加する構文
ALTER TYPE 列挙型(ENUM値) ADD VALUE '値’

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
postgres=# create type citys as enum('tokyo','oosaka','fukuoka');
CREATE TYPE
postgres=# create type citys as enum('tokyo','oosaka','fukuoka'); CREATE TYPE
postgres=# create type citys as enum('tokyo','oosaka','fukuoka');
CREATE TYPE

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
nspname typname enumlabel
public city tokyo
public city oosaka
public city fukuoka
nspname typname enumlabel public city tokyo public city oosaka public city fukuoka
nspname	typname	enumlabel
public	city	tokyo
public	city	oosaka
public	city	fukuoka

5.列挙型(enum)値を追加します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
postgres=# alter type citys add value 'yokohama';
ALTER TYPE
postgres=# alter type citys add value 'yokohama'; ALTER TYPE
postgres=# alter type citys add value 'yokohama';
ALTER TYPE

7.追加後列挙型(enum)値を確認します
SQl構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
nspname typname enumlabel
public citys tokyo
public citys oosaka
public citys fukuoka
public citys yokohama
nspname typname enumlabel public citys tokyo public citys oosaka public citys fukuoka public citys yokohama
nspname	typname	enumlabel
public	citys	tokyo
public	citys	oosaka
public	citys	fukuoka
public	citys	yokohama

 

PostgreSQL

Posted by arkgame