在postgres中更改用户定义的类型列类型

时间:2015-08-26 10:41:44

标签: postgresql

我有两种用户定义的类型:

CREATE TYPE s.s_stavp_kv AS ENUM('k','v');

CREATE TYPE s.stavp_kv AS ENUM('k','v');

表格如下

CREATE TABLE s.zv_stavp
(
   version integer NOT NULL,
   id integer NOT NULL,
   tudu integer NOT NULL,
   kv s_stavp_kv NOT NULL,
   cobj text NOT NULL,
   iobj text NOT NULL,
   typev text
)

现在我需要将kv的类型更改为stavp_kv类型。我正在尝试这样的事情:

ALTER TABLE s.zv_stavp 
  ALTER COLUMN kv TYPE stavp_kv USING ...???...;

但我完全不知道写什么作为USING表达。

1 个答案:

答案 0 :(得分:1)

答案是:

ALTER TABLE s.zv_stavp 
  ALTER COLUMN kv TYPE stavp_kv USING kv::text::stavp_kv;