postgresql – 如何删除postgres中的枚举类型值?
发布时间:2020-12-13 16:30:37 所属栏目:百科 来源:网络整理
导读:如何删除我在postgresql中创建的枚举类型值? create type admin_level1 as enum('classifier','moderator','god'); 例如.我想从列表中删除主持人. 我似乎无法在文档上找到任何内容. 我正在使用Postgresql 9.3.4. 使用 DROP TYPE 删除(删除)任何其他类型的枚
如何删除我在postgresql中创建的枚举类型值?
create type admin_level1 as enum('classifier','moderator','god'); 例如.我想从列表中删除主持人. 我似乎无法在文档上找到任何内容. 我正在使用Postgresql 9.3.4.
使用
DROP TYPE 删除(删除)任何其他类型的枚举类型:
DROP TYPE admin_level1; 您是否有可能实际上询问如何从枚举类型中删除单个值?如果是这样,你就不能.它不受支持.您必须创建没有值的新类型,将旧类型的所有现有用法转换为使用新类型,然后删除旧类型. 例如. 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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- ruby-on-rails-3 – 如何安装ImageMagick以用于R
- 25、swift开发iOS——析构函数
- c# – 编译器是否会优化与IEnumerable.Count()的
- 在C聚合类中实现调用多路复用的优雅方式?
- c# – 在SQLite和Dapper中映射TimeSpan
- $.ajax 和 jquery.form.js实现表单异步提交
- jQueryForm ajax提交,CKEditor编辑器内容丢失
- ORACLE 11g从 11.2.0.1升级到11.2.0.4 详细实战过
- fusioncharts 中 图表flash置顶 解决方案
- swift – Xcode 8 Glitchy标签栏视图控制器. (主
热点阅读