PostgreSQL 9.1.5 で列挙型の項目の名前を変更したいと考えています。
タイプの create stmt は次のとおりです。
CREATE TYPE import_action AS ENUM
('Ignored',
'Inserted',
'Updated',
'Task created');
「Task created」を「Aborted」に変更したいだけです。documentationから、次のように動作するようです:
ALTER TYPE import_action
RENAME ATTRIBUTE "Task created" TO "Aborted";
ただし、次のメッセージが表示されます。
********** Error **********
ERROR: relation "import_action" does not exist
SQL state: 42P01
しかし、それは明らかに存在します。
タイプは現在、複数のテーブルで使用されています。
これを行う方法はあってはならないと考えています。pgAdminIII でタイプのダイアログを試しましたが、そこで名前を変更する方法がありません。(だから、私にはできないという強いヒントか、または-私が望んでいる-そのダイアログを作成した開発者の小さな見落としのいずれかです)
1つのステートメントでこれを行うことができない場合は? 次に、私は何をする必要がありますか?アイテムを追加し、すべてのレコードを新しい値に更新してから、古いアイテムを削除するスクリプトを作成する必要がありますか? それはうまくいきますか?
これは単純なことのようです。私が理解しているように、レコードはタイプとアイテムへの参照を格納しているだけです。私が与えたテキスト値を実際に保存しているとは思いません。でも、ここも間違っているかも。