0
我有一个名为“abc_integer”的列,它保存的值只有2个值(1,2)的表格的foriegn键值。所以我想放弃这一栏,并添加一个新列“abc_enum” 注:我想这在Postgres的9.3版本在Postgres中将枚举类型整数转换为枚举
CREATE TYPE abc_enum_type ENUM AS ('hi', 'hello');
ALTER TABLE abc ADD COLUMN abc_enum abc_enum_type ;
UPDATE abc SET abc_enum = CASE
WHEN abc_integer == 1 THEN 'hi'::abc_enum_type
ELSE 'hello'::abc_enum_type END ;
ALTER TABLE abc DROP COLUMN abc_intger;
有没有更好的办法这样做呢? 就像在一个语句中包含所有这些变更类型并使用USING子句重命名?
在此先感谢!
谢谢!我没有任何默认值。 – Shankar
是否与上述相同?两者将需要相同的时间来执行?因为我们正在改变类型,另一方面我们正在更新新列。 – Shankar
是的。忘了提及:) –