使用以下内容:
CREATE TYPE user_types AS ENUM ('it', 'accounting', 'processes');
CREATE TABLE my_users
(
my_user_id integer NOT NULL,
my_user_name text NOT NULL,
my_user_type user_types
)
我想更改其中一种用户类型:
ALTER TYPE user_types RENAME ATTRIBUTE it TO softwaredev CASCADE;
我收到一个错误:
ERROR: relation "user_types" does not exist
SQL state: 42P01
我尝试添加引号和反引号,但这没有帮助。我在这里写下的示例不是确切的代码,我的类型有 31 个字符,但我不认为我的类型的长度是问题。
我使用的是 postgres 版本 9.6.2
ALTER TYPE ... RENAME ATTRIBUTE
仅适用于复合类型,不适用于ENUM
types.
虽然有一种方法可以向这种类型添加新条目(ALTER TYPE ... ADD VALUE 'new_value'
),不支持删除或重命名枚举条目的方法。
如果您不怕弄乱目录,可以尝试以超级用户身份:
UPDATE pg_enum
SET enumlabel = 'softwaredev'
WHERE enumtypid = 'user_types'::regtype
AND enumlabel = 'it';
从 PostgreSQL v10 开始,您可以使用
ALTER TYPE ... RENAME VALUE ... TO ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)