Du måste definiera en cast som ska användas eftersom det inte finns någon standardcast tillgänglig.
Om alla värden i varcharColumn
följer enum-definitionen, bör följande fungera:
alter table foo
ALTER COLUMN varcharColumn TYPE enum_type using varcharColumn::enum_type;
Jag personligen gillar inte enums eftersom de är ganska oflexibla. Jag föredrar en kontrollbegränsning på en varchar-kolumn om jag vill begränsa värdena i en kolumn. Eller - om listan över värden ändras ofta och kommer att växa - en gammal bra "uppslagstabell" med en främmande nyckel-begränsning.