【发布时间】:2014-11-11 10:05:38
【问题描述】:
我找到了如何为TYPE 增加价值。但是我怎样才能从中删除价值呢?
例如我有TYPE 和enum 值('A','B','C')。如何删除'C'?
【问题讨论】:
-
如果您需要这样做,
enum很可能首先是错误的选择。在两个表之间使用第二个表和外键
我找到了如何为TYPE 增加价值。但是我怎样才能从中删除价值呢?
例如我有TYPE 和enum 值('A','B','C')。如何删除'C'?
【问题讨论】:
enum 很可能首先是错误的选择。在两个表之间使用第二个表和外键
要从枚举 ('enum_test') 中删除值 ('val1'),您可以使用:
DELETE FROM pg_enum
WHERE enumlabel = 'val1'
AND enumtypid = (
SELECT oid FROM pg_type WHERE typname = 'enum_test'
)
【讨论】:
“DELETE FROM pg_enum”答案有效。
但是,必须意识到这可能很危险,因为如果删除的枚举值存在于数据库中某些表的某个位置,删除仍然可以正常工作,但所有具有删除值的记录都会损坏。例如。任何在其结果集中具有任何此类记录的 SELECT 查询都会崩溃。
【讨论】: