PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Aktualisieren einer varchar-Spalte auf den Enum-Typ in postgresql

Sie müssen eine zu verwendende Umwandlung definieren, da keine Standardumwandlung verfügbar ist.

Wenn alle Werte in der varcharColumn der Enum-Definition entsprechen, sollte Folgendes funktionieren:

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

Ich persönlich mag Aufzählungen nicht, weil sie ziemlich unflexibel sind. Ich bevorzuge eine Check-Einschränkung für eine varchar-Spalte, wenn ich die Werte in einer Spalte einschränken möchte. Oder - wenn sich die Liste der Werte oft ändert und wächst - eine gute alte "Nachschlagetabelle" mit einer Fremdschlüsselbeschränkung.