sql >> Base de Datos >  >> RDS >> PostgreSQL

error:ALTER TYPE... ADD no puede ejecutarse dentro de un bloque de transacción

Como se mencionó anteriormente, no puede editar la enumeración dentro del bloque de transacciones. Pero puedes crear uno nuevo. Estos son los pasos:

  1. Cambiar tipo de request_type a varchar para todas las columnas/tablas que usan este tipo:
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE VARCHAR(255);
  1. Soltar y volver a crear request_type enumeración:
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. Revertir tipo de varchar a request_type para todas las columnas/tablas (revertir el paso uno):
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE request_type
    USING (column_name::request_type);