PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

erreur :ALTER TYPE ... ADD ne peut pas s'exécuter dans un bloc de transaction

Comme mentionné ci-dessus, vous ne pouvez pas modifier l'énumération dans le bloc de transaction. Mais vous pouvez en créer un nouveau. Voici les étapes :

  1. Modifier le type de request_type en varchar pour toutes les colonnes/tables qui utilisent ce type :
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE VARCHAR(255);
  1. Déposez et recréez request_type énumération :
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. Rétablir le type de varchar à request_type pour toutes les colonnes/tables (inversez la première étape) :
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE request_type
    USING (column_name::request_type);