Переименование значения перечисления поддерживается только начиная с Postgres 10.
Как указано в руководстве , вы должны использовать rename VALUE
, а не rename attribute
для переименования значения перечисления.
Перечисляемые значения также являются строковыми константами, а не идентификаторами. Поэтому вам необходимо заключать их в одинарные, а не в двойные кавычки:
ALTER TYPE public.enum_subscription_sub_frequency RENAME VALUE 'BI-WEEKLY' TO 'BI_WEEKLY';
Если вам интересно, почему вы получаете сообщение об ошибке «тип ... не существует» с неправильным синтаксисом:
Когда вы используете опцию RENAME ATTRIBUTE
, это означает, что «обычный» тип объекта должен быть изменен, поэтому Postgres ищет «настоящий» тип объекта.
Но «тип enum» не является «типом объекта», и поэтому Postgres жалуется на «тип xyz не существует», а не на синтаксическую ошибку.