【问题标题】:how to change type of column in postgres如何更改postgres中的列类型
【发布时间】:2018-09-18 10:25:12
【问题描述】:

我的列是'enum_type'。我使用查询:

ALTER TABLE subscriptions
ALTER COLUMN subscribable_type TYPE enum('User', 'Organization');

将类型从字符串更改为枚举。但它不起作用并且失败:

[42704] 错误:类型“枚举”不存在

【问题讨论】:

  • 你不应该一开始就使用枚举。使用带有外键的正确查找表。如果您只想限制允许的值,请改用检查约束。
  • 你可以像这样使用它:CREATE TYPE subscription_type AS ENUM ('User', 'Organization'); ALTER TABLE 订阅 ALTER COLUMN subscribable_type TYPE subscription_type USING subscribable_type::subscription_type;

标签: postgresql


【解决方案1】:

您必须分两步完成:

CREATE TYPE sub_type
   AS ENUM ('User', 'Organization');

ALTER TABLE subscriptions
   ALTER subscribable_type TYPE sub_type USING subscribable_type::sub_type;

【讨论】:

  • 太好了!谢谢! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 2012-08-27
  • 1970-01-01
  • 2011-03-05
  • 2018-06-24
  • 1970-01-01
相关资源
最近更新 更多