Musisz zdefiniować rzut, który ma być używany, ponieważ nie jest dostępny domyślny rzut.
Jeśli wszystkie wartości w varcharColumn
zgodne z definicją wyliczenia, powinno działać:
alter table foo
ALTER COLUMN varcharColumn TYPE enum_type using varcharColumn::enum_type;
Osobiście nie lubię wyliczeń, ponieważ są one dość nieelastyczne. Wolę ograniczenie sprawdzające w kolumnie varchar, jeśli chcę ograniczyć wartości w kolumnie. Lub - jeśli lista wartości często się zmienia i będzie się powiększać - stara dobra "tabela przeglądowa" z ograniczeniem klucza obcego.