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

Aggiornamento di una colonna varchar al tipo enum in postgresql

Devi definire un cast da utilizzare perché non è disponibile un cast predefinito.

Se tutti i valori in varcharColumn rispettare la definizione enum, dovrebbe funzionare quanto segue:

alter table foo 
  ALTER COLUMN varcharColumn TYPE enum_type using varcharColumn::enum_type;

Personalmente non mi piacciono le enumerazioni perché sono piuttosto rigide. Preferisco un vincolo di controllo su una colonna varchar se voglio limitare i valori in una colonna. Oppure, se l'elenco dei valori cambia spesso e cresce, una buona vecchia "tabella di ricerca" con un vincolo di chiave esterna.