Както беше споменато по-горе, не можете да редактирате enum в рамките на транзакционния блок. Но можете да създадете новия. Ето стъпките:
- Промяна на типа от request_type към varchar за всички колони/таблици, които използват този тип:
ALTER TABLE table_name
ALTER COLUMN column_name TYPE VARCHAR(255);
- Премахнете и създайте отново request_type enum:
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 за всички колони/таблици (връщане на първа стъпка):
ALTER TABLE table_name
ALTER COLUMN column_name TYPE request_type
USING (column_name::request_type);