【问题标题】:How to alter type and remove value in postgresql [duplicate]如何在postgresql中更改类型和删除值[重复]
【发布时间】:2014-11-11 10:05:38
【问题描述】:

我找到了如何为TYPE 增加价值。但是我怎样才能从中删除价值呢?
例如我有TYPEenum('A','B','C')。如何删除'C'

【问题讨论】:

  • 如果您需要这样做,enum 很可能首先是错误的选择。在两个表之间使用第二个表和外键

标签: postgresql postgresql-9.2


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

“DELETE FROM pg_enum”答案有效。

但是,必须意识到这可能很危险,因为如果删除的枚举值存在于数据库中某些表的某个位置,删除仍然可以正常工作,但所有具有删除值的记录都会损坏。例如。任何在其结果集中具有任何此类记录的 SELECT 查询都会崩溃。

【讨论】:

  • 我正在考虑这个问题。您知道在数据库中搜索参考文献的方法吗?此外,在删除所有参考文献后编制索引是否存在风险?
猜你喜欢
  • 1970-01-01
  • 2022-11-02
  • 2022-01-17
  • 2019-04-14
  • 2013-05-11
  • 2023-01-27
  • 2012-08-23
  • 2016-01-27
  • 2017-02-17
相关资源
最近更新 更多