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

Mise à niveau d'une colonne varchar vers le type enum dans postgresql

Vous devez définir une distribution à utiliser car aucune distribution par défaut n'est disponible.

Si toutes les valeurs de varcharColumn se conformer à la définition enum, ce qui suit devrait fonctionner :

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

Personnellement, je n'aime pas les énumérations car elles sont assez rigides. Je préfère une contrainte de vérification sur une colonne varchar si je veux restreindre les valeurs dans une colonne. Ou - si la liste de valeurs change souvent et va s'allonger - une bonne vieille "table de recherche" avec une contrainte de clé étrangère.