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

标签 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表达式。

最佳答案

答案是:

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

关于postgresql - 在postgres中更改用户定义的类型列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32224448/

相关文章:

postgresql - 如何通过 Amazon EC2 将 postgresql 数据移动到 Ubuntu 上的另一个目录?

postgresql - Postgres 效率

sql - 根据上一个查询的一个值查找结果

django - 预构建的 Django 项目在迁移时出错

sql - Postgresql UPDATE 基于先前 SELECT 的结果

postgresql - 返回连接表但仅按主表 ID 分组

ruby-on-rails - 无法使 postgres unaccent 扩展在 rails 上工作

python - SQLAlchemy + Postgres + Python 完整性错误

sql - PostgreSQL 从选择中插入但忽略现有行

database - PostgreSQL:有没有办法克隆一行数据以便用测试数据填充表?