Đổi tên giá trị của một enum chỉ được hỗ trợ bắt đầu bằng Postgres 10.
Như được ghi trong sách hướng dẫn bạn phải sử dụng rename VALUE
, không phải thuộc tính rename attribute
để đổi tên giá trị của một enum.
Giá trị Enums cũng là hằng số chuỗi, không phải là định danh. Do đó, bạn cần đặt chúng trong dấu ngoặc kép, không phải dấu ngoặc kép:
ALTER TYPE public.enum_subscription_sub_frequency RENAME VALUE 'BI-WEEKLY' TO 'BI_WEEKLY';
Nếu bạn thắc mắc tại sao bạn gặp lỗi "loại ... không tồn tại" với cú pháp sai:
Khi bạn sử dụng tùy chọn RENAME ATTRIBUTE
điều này chỉ ra rằng một loại đối tượng "thông thường" nên được thay đổi, vì vậy Postgres tìm kiếm một loại đối tượng "thực".
Nhưng "kiểu enum" không phải là "kiểu đối tượng" và do đó Postgres phàn nàn về "kiểu xyz không tồn tại", thay vì lỗi cú pháp.