列挙型の値の名前変更は、Postgres10以降でのみサポートされています。
マニュアルに記載されているとおり rename VALUE
を使用する必要があります 、rename attribute
ではありません 列挙型の値の名前を変更します。
列挙値も文字列定数であり、識別子ではありません。したがって、二重引用符ではなく一重引用符で囲む必要があります。
ALTER TYPE public.enum_subscription_sub_frequency RENAME VALUE 'BI-WEEKLY' TO 'BI_WEEKLY';
間違った構文で「type...does notexist」エラーが発生する理由がわからない場合:
オプションRENAME ATTRIBUTE
を使用する場合 これは、「通常の」オブジェクトタイプを変更する必要があることを示しているため、Postgresは「実際の」オブジェクトタイプを探します。
ただし、「列挙型」は「オブジェクト型」ではないため、Postgresは構文エラーではなく、「xyz型が存在しません」と文句を言います。