sql >> Database teknologi >  >> RDS >> PostgreSQL

fejl:ALTER TYPE ... ADD kan ikke køre i en transaktionsblok

Som det blev nævnt ovenfor, kan du ikke redigere enum inden for transaktionsblokken. Men du kan oprette den nye. Her er trinene:

  1. Skift type fra request_type til varchar for alle kolonner/tabeller, der bruger denne type:
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE VARCHAR(255);
  1. Slip og opret igen 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. Tilbagedan type fra varchar til request_type for alle kolonner/tabeller (vend trin et tilbage):
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE request_type
    USING (column_name::request_type);


  1. Problemer med at gemme tyske ord i MySql DB....?

  2. SQL-fejl:ORA-14006:ugyldigt partitionsnavn

  3. Hvordan parses en VARCHAR, der er sendt til en lagret procedure i SQL Server?

  4. Sådan fungerer LEFT()-funktionen i SQL Server (T-SQL)