Postgresql 如何更改postgres中的列类型

Postgresql 如何更改postgres中的列类型,postgresql,Postgresql,我有一列是“枚举类型”。我使用查询: ALTER TABLE subscriptions ALTER COLUMN subscribable_type TYPE enum('User', 'Organization'); 将类型从字符串更改为枚举。但它不起作用并失败: [42704]错误:类型“enum”不存在 您必须分两步进行: CREATE TYPE sub_type AS ENUM ('User', 'Organization'); ALTER TABLE subscriptio

我有一列是“枚举类型”。我使用查询:

ALTER TABLE subscriptions
ALTER COLUMN subscribable_type TYPE enum('User', 'Organization');
将类型从字符串更改为枚举。但它不起作用并失败:

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


您必须分两步进行:

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

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

您必须分两步进行:

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

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

您不应该首先使用枚举。使用带有外键的适当查找表。如果您只想限制允许的值,请改用检查约束。您可以像这样使用它:创建类型订阅\u类型作为枚举('User','Organization');ALTER TABLE subscription使用SUBSCRIPABLE\U type::subscription\U type更改列SUBSCRIPABLE\U type subscription\U type;您不应该首先使用枚举。使用带有外键的适当查找表。如果您只想限制允许的值,请改用检查约束。您可以像这样使用它:创建类型订阅\u类型作为枚举('User','Organization');ALTER TABLE subscription使用SUBSCRIPABLE\U type::subscription\U type更改列SUBSCRIPABLE\U type subscription\U type;太好了!谢谢太好了!谢谢D