Att byta namn på ett värde på en enum stöds endast från och med Postgres 10.
Som dokumenterat i manualen du måste använda rename VALUE
, inte rename attribute
för att byta namn på värdet på en enum.
Enums-värden är också strängkonstanter, inte identifierare. Därför måste du omge dem med enkla citattecken, inte dubbla citattecken:
ALTER TYPE public.enum_subscription_sub_frequency RENAME VALUE 'BI-WEEKLY' TO 'BI_WEEKLY';
Om du undrar varför du får ett "typ ... finns inte"-fel med fel syntax:
När du använder alternativet RENAME ATTRIBUTE
detta indikerar att en "vanlig" objekttyp bör ändras, så Postgres letar efter en "riktig" objekttyp.
Men en "enum-typ" är inte en "objekttyp" och därför klagar Postgres på "typ xyz existerar inte", snarare än ett syntaxfel.