Я хотел бы изменить имя элемента в перечисляемом типе в PostgreSQL 9.1.5.
Вот тип create stmt:
CREATE TYPE import_action AS ENUM
('Ignored',
'Inserted',
'Updated',
'Task created');
Я просто хочу изменить "Задача создана" на "Прервано". Похоже, что из документации, что должно работать следующее:
ALTER TYPE import_action
RENAME ATTRIBUTE "Task created" TO "Aborted";
Однако я получаю сообщение msg:
********** Error **********
ERROR: relation "import_action" does not exist
SQL state: 42P01
Но это явно существует.
Тип в настоящее время используется более чем одной таблицей.
Я думаю, что не должно быть способа сделать это. Я пробовал диалог для типа в pgAdminIII, но я не вижу возможности переименовать его там. (Итак, либо сильный намек, что я не могу этого сделать, либо - я надеюсь - небольшой надзор за разработчиком, который создал этот диалог)
Если я не могу сделать это в одном статусе? Тогда что мне нужно сделать? Должен ли я написать script, чтобы добавить элемент, обновить все записи до нового значения, а затем удалить старый элемент? Будет ли это работать?
Кажется, это должно быть просто. Насколько я понимаю, записи просто сохраняют ссылку на тип и элемент. Я не думаю, что они на самом деле хранят текстовое значение, которое я ему дал. Но, возможно, я тоже здесь не прав.