上で述べたように、トランザクションブロック内の列挙型を編集することはできません。ただし、新しいものを作成することはできます。手順は次のとおりです。
- タイプをrequest_typeから変更します varcharへ このタイプを使用するすべての列/テーブルの場合:
ALTER TABLE table_name
ALTER COLUMN column_name TYPE VARCHAR(255);
- ドロップして再作成request_type 列挙型:
DROP TYPE IF EXISTS request_type;
CREATE TYPE request_type AS ENUM (
'OLD_VALUE_1',
'OLD_VALUE_2',
'NEW_VALUE_1',
'NEW_VALUE_2'
);
- タイプをvarcharから戻します request_typeへ すべての列/テーブルに対して(ステップ1を元に戻します):
ALTER TABLE table_name
ALTER COLUMN column_name TYPE request_type
USING (column_name::request_type);