如何删除postgres中的枚举类型值?

2023-12-20

如何删除在 postgresql 中创建的枚举类型值?

create type admin_level1 as enum('classifier', 'moderator', 'god');

例如。我想删除moderator从列表中。

我似乎在文档中找不到任何内容。

我正在使用 Postgresql 9.3.4。


您可以像任何其他类型一样删除(删除)枚举类型,使用DROP TYPE http://www.postgresql.org/docs/current/static/sql-droptype.html:

DROP TYPE admin_level1;

有可能你实际上是在问如何从枚举类型中删除单个值?如果是这样,你不能。不支持 https://www.postgresql.org/docs/current/datatype-enum.html:

虽然enum类型主要用于静态值集,支持向现有枚举类型添加新值以及重命名值(请参阅ALTER TYPE)。无法从枚举类型中删除现有值,也无法更改此类值的排序顺序,除非删除并重新创建枚举类型。

您必须创建一个不带值的新类型,将旧类型的所有现有用途转换为使用新类型,然后删除旧类型。

E.g.

CREATE TYPE admin_level1 AS ENUM ('classifier', 'moderator');

CREATE TABLE blah (
    user_id integer primary key,
    power admin_level1 not null
);

INSERT INTO blah(user_id, power) VALUES (1, 'moderator'), (10, 'classifier');

ALTER TYPE admin_level1 ADD VALUE 'god';

INSERT INTO blah(user_id, power) VALUES (42, 'god');

-- .... oops, maybe that was a bad idea

CREATE TYPE admin_level1_new AS ENUM ('classifier', 'moderator');

-- Remove values that won't be compatible with new definition
-- You don't have to delete, you might update instead
DELETE FROM blah WHERE power = 'god';

-- Convert to new type, casting via text representation
ALTER TABLE blah 
  ALTER COLUMN power TYPE admin_level1_new 
    USING (power::text::admin_level1_new);

-- and swap the types
DROP TYPE admin_level1;

ALTER TYPE admin_level1_new RENAME TO admin_level1;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除postgres中的枚举类型值? 的相关文章

随机推荐

  • 如何使用 CSS2 选择器获取元素的第 n 个子元素?

    CSS2 中是否有可能获取有序列表的第 n 个元素 如同 nth child 在 CSS3 中 仅供参考 我正在尝试将 Parcheesi 的德语版本编程为兼容 XHTML 1 1 和 CSS2 并尝试使用有序列表生成游戏场 因此移动选项是
  • jQuery 如果 myDiv 是:可见,则将类添加到另一个元素

    我又开始接触 jQuery 了 显然我错过了一些东西 我想根据另一个元素是否可见向元素添加一个类 它隐藏着display none 并激活slideToggle 我有这个 if about me is visible about me cl
  • 如何使用本地开发 minikube 进入 Kubernetes 中的 postgres

    有人可以帮我吗 这是我在这里发表的第一篇文章 我真的很高兴开始在这里发帖并帮助人们 但我首先需要帮助 我正在 Minikube 上部署我自己的 Postgres 数据库 对于数据库 密码和用户名 我使用的是秘密 数据采用base64编码 P
  • 在基于服务器的代理中使用 REST 服务

    我们被要求构建一个基于 Domino 服务器的数据库 用于与远程非 Domino 服务器交换数据 可以使用 Web 服务连接到远程服务器 使用 R8 5 3 在 Domino 中创建 RESTful 服务似乎很简单 Internet 上有一
  • 为什么 StringBuffer 有 toStringCache 而 StringBuilder 没有?

    在 JDK 8 中 StringBuffer类有一个toStringCache while StringBuilder没有 A cache of the last value returned by toString Cleared whe
  • Flutter - 应用程序范围的通知

    是否有正确的方法可以从 Flutter 应用程序中的 根 页面或位置监听流 作用域模型 并在收到一些数据后在任何当前打开的页面 可能不是主页 上显示适当的通知 例如 Snackbar 我希望能够在整个应用程序中显示某些通知 而不仅仅是逐页显
  • 如何从 Dash 回调的数据帧中获取计数

    我想根据下拉列表中的回调选择来显示破折号布局中 div 内某些条件的计数 我能够获取 pandas 数据帧列中值的下拉列表 但我无法弄清楚如何显示该列中选定元素的总数 例如 我在 Jupyter Notebook 中编写了一个函数来获取计数
  • 切换类不绑定点击事件

    向我的按钮添加了一个类 并尝试在 onclick 事件后启动 但不起作用 非常简单的代码为什么事件没有绑定我做错了什么 http jsfiddle net davidThomas n2WUn 3 http jsfiddle net davi
  • 剪刀石头布

    我为我的计算机科学课程进行了一次测试 其中一个问题是制作一个剪刀石头布游戏 如果玩家 1 获胜 则返回 1 如果玩家 2 获胜 则返回 1 如果平局 则返回0 我编写了程序并运行了它 它起作用了 但据我的教授说 他说它不起作用 def rp
  • 为什么Python内置的“all”函数对于空可迭代返回True?

    我知道这是有充分理由的 但我想知道是什么理由 gt gt gt print all True 如果 all 旨在检查 iterable 上的每个项目的计算结果是否为 True 并且我们知道空列表的计算结果为 False gt gt gt b
  • 从 ActiveRecord 模型获取特定属性

    假设我有一个User具有属性的模型 id first name last name and email 在我的应用程序中 来宾用户不应该看到User s email and last name 如果我想要用户列表 我知道如何选择特定值 但我
  • 如何删除“<”和“>”之间的所有字符,包括“<”和“>”?

    我有字符串 window google ac h h y nghe l i h y nghe l i b i c lt i gt lt b gt 30 10 40 j 13 o h y nghe l i i b
  • 类定义和内存分配

    如果定义代表分配内存 为什么 C 中的类定义在实例化对象之前没有分配内存 C 类定义不分配内存 class就好像typedef and struct 您从哪里得到 定义代表分配内存 的想法 您能提供报价或参考吗 C 对象创建 通过new 分
  • Chrome 无法播放 mp3 文件?

    我的服务器上有一些非常奇怪的东西 chrome 无法在其上播放 mp3 文件 例如 当 chrome 指向第一台服务器上的 mp3 文件时 http tinyurl com czqfw5a http tinyurl com czqfw5a
  • 单击目标 c 中的按钮更改图像

    我在 xib 文件中拖动了 3 个按钮 分别为 btn1 btn2 btn3 最初我给了它们默认图像 first png 现在 当用户单击 btn1 时 btn1 的图像应从 first png 更改为 secondary png 当用户选
  • Plotly:如何向绘图表达图形添加水平滚动条?

    我开始了解更多关于plotly和pandas的知识 并且有一个多元时间序列 我希望使用plotly express功能来绘制和交互 我还希望我的绘图是水平滚动条 以便初始绘图适用于预先指定的初始时间间隔 这是我的示例 涉及三个时间序列以及
  • 如何使用画布在 ImageView 上绘制不受缩放影响的线条?

    我通过执行以下操作在 ImageView 上绘制线条 Bitmap imageBitmap BitmapDrawable imageView getDrawable getBitmap Bitmap duplicateBitmap Bitm
  • 如何在 laravel5.1 中使用用户输入的数据集合继续进行测验

    我会为此直接前进 这个问题与我通过的问题 https stackoverflow com questions 46355609 how to get a specific grade data using laravel eloquent
  • Python:这个编码是什么以及如何解码?

    我有很多来自邮件正文的字符串 打印如下 C3 A9 例如 这应该是 这种编码到底是什么以及如何解码它 我正在使用 python 3 5 EDIT 我设法通过应用以下方法对邮件正文进行正确编码 quopri decodestring some
  • 如何删除postgres中的枚举类型值?

    如何删除在 postgresql 中创建的枚举类型值 create type admin level1 as enum classifier moderator god 例如 我想删除moderator从列表中 我似乎在文档中找不到任何内容