sql >> Databáze >  >> RDS >> PostgreSQL

chyba:ALTER TYPE ... ADD nelze spustit uvnitř bloku transakce

Jak bylo zmíněno výše, v rámci transakčního bloku nemůžete upravovat enum. Ale můžete vytvořit nový. Zde jsou kroky:

  1. Změňte typ z request_type na varchar pro všechny sloupce/tabulky, které používají tento typ:
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE VARCHAR(255);
  1. Přetáhněte a znovu vytvořte 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. Vrátit typ z varchar na request_type pro všechny sloupce/tabulky (vrátit krok 1):
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE request_type
    USING (column_name::request_type);


  1. zablokování postgresql

  2. Když spustím program, JPA nevytvoří tabulku v MySQL

  3. Co může způsobit příliš mnoho databázových připojení

  4. php server ERR_CONNECTION_REFUSED