PostgreSQL 14.4に列挙型(ENUM値)値を作成する方法
環境
OSバージョンの確認
# 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バージョンの確認
# psql --version
psql (PostgreSQL) 14.4
# psql --version
psql (PostgreSQL) 14.4
# psql --version psql (PostgreSQL) 14.4
構文
CREATE TYPE 列挙型名 AS ENUM (値1 , 値2 ,…)
CREATE TYPEを使って、列挙型(ENUM)を作成します。
PostgreSQL 14.4に列挙型(ENUM値)値を作成する手順
1.列挙型を作成します
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値を使用してテーブルを作成します。
postgres=# CREATE TABLE stdtbl (
stid integer,
cft citys
);
CREATE TABLE
postgres=# CREATE TABLE stdtbl (
stid integer,
cft citys
);
CREATE TABLE
postgres=# CREATE TABLE stdtbl ( stid integer, cft citys ); CREATE TABLE
3.テーブルに値を挿入します
postgres=# insert into stdtbl values(2345,'fukuoka');
INSERT 0 1
postgres=# insert into stdtbl values(6789,'tokyo');
INSERT 0 1
postgres=# insert into stdtbl values(2345,'fukuoka');
INSERT 0 1
postgres=# insert into stdtbl values(6789,'tokyo');
INSERT 0 1
postgres=# insert into stdtbl values(2345,'fukuoka'); INSERT 0 1 postgres=# insert into stdtbl values(6789,'tokyo'); INSERT 0 1
4.列挙型(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
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
実行結果
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