如何在postgresql中更改类型和删除值

时间:2014-09-17 11:31:00

标签: postgresql postgresql-9.2

我找到了如何为TYPE增加价值。但是我如何从中删除价值呢? 例如,我TYPE的值为enum ('A','B','C')。如何删除'C'

3 个答案:

答案 0 :(得分:29)

要从枚举('enum_test')中删除值('val1'),您可以使用:

DELETE FROM pg_enum
WHERE enumlabel = 'val1'
AND enumtypid = (
  SELECT oid FROM pg_type WHERE typname = 'enum_test'
)

答案 1 :(得分:12)

我刚刚在另一个问题上回答了这个问题,但这并不是一个重复的问题。

请参阅:How to delete an enum type in postgres?

答案 2 :(得分:0)

“从pg_enum删除”答案有效。

但是,必须要注意它可能是危险的,因为如果删除的枚举值存在于数据库中某些表的某处,则删除仍然可以正常运行而不会抱怨,但所有具有已删除值的记录都会损坏。例如。任何在其结果集中包含任何此类记录的SELECT查询都会崩溃。