のカラムを変更:今のPostgreSQL:これは、列挙型の定義で列挙型
CREATE TYPE khstate AS ENUM ('none', 'form', 'test', 'finished');
、データベーステーブル内のIは、列「ID」(タイプSERIAL)と「状態」と行を有します(タイプkhstate)。 'id'列の値は100004で、 'state'列の値は 'none'です。どのように私はそれを「フォーム」に変更するのですか?テーブルの定義は以下の通りです。列挙khstateに無効な入力値: "フォーム"
UPDATE tablename SET state = 'form'::khstate WHERE id = 100004;
ERROR:列挙khstateに無効な入力値:「フォームIは、
UPDATE tablename SET state = 'form' WHERE id = 100004;
エラーとしてクエリを試みた
CREATE TABLE IF NOT EXISTS khs (
id SERIAL UNIQUE,
state khstate DEFAULT 'none',
PRIMARY KEY (id)
);
しかし成功しません。私は最新のBitNami LAPPstackを使用しているので、PostgreSQLのバージョンは9.1.1です。
私はどのようなRULE制約やTRIGGER制約を追加したり、トランザクションを明示的に使用したりすることはありません。
Googleは解決策を試しましたが、列の値ではなく、列挙型自体を変更する方法がわかりました。
"しかし役に立たない。手段? –
両方のフォームがここで動作します。質問を編集して、CREATE TABLEステートメントと実際のエラーメッセージを含めます。 (コピー&ペースト、再入力しないでください) –
好奇心 - UPDATE文を実行した後、トランザクションをコミットしましたか? –