PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

erro:ALTER TYPE ... ADD não pode ser executado dentro de um bloco de transação


Como foi mencionado acima, você não pode editar enum no bloco de transação. Mas você pode criar o novo. Aqui estão os passos:
  1. Alterar tipo de request_type para varchar para todas as colunas/tabelas que usam este tipo:
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE VARCHAR(255);
  1. Solte e crie novamente 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'
);
  1. Reverter tipo de varchar para request_type para todas as colunas/tabelas (reverter a primeira etapa):
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE request_type
    USING (column_name::request_type);