这是枚举类型的定义:PostgreSQL的:改变枚举类型的列
CREATE TYPE khstate AS ENUM ('none', 'form', 'test', 'finished');
现在,在数据库表我有列“ID”(式串行)行和“国家” (类型khstate)。 'id'列的值是100004,'state'列的值是'none'。我如何将它改为“form”?表格定义如下。
CREATE TABLE IF NOT EXISTS khs (
id SERIAL UNIQUE,
state khstate DEFAULT 'none',
PRIMARY KEY (id)
);
我曾尝试查询诸如
UPDATE tablename SET state = 'form' WHERE id = 100004;
ERROR:无效的输入值用于枚举khstate: “形式”
UPDATE tablename SET state = 'form'::khstate WHERE id = 100004;
错误:枚举khstate无效的输入值:“形式“
但没有成功。我使用最新的BitNami LAPPstack,所以PostgreSQL的版本是9.1.1。
我还没有添加任何RULE或TRIGGER约束,也没有明确使用事务。
我试着谷歌的解决方案,但我能找到的所有问题是如何更改枚举类型本身,而不是列的值。
“但无济于事。”手段? – 2011-12-31 18:06:44
这两种表格都在这里工作。编辑您的问题以包含CREATE TABLE语句和实际的错误消息。 (复制并粘贴;不要重新输入。) – 2011-12-31 18:19:05
好奇心 - 在执行您的UPDATE语句之后,您是否提交事务? – 2012-01-01 05:12:53