【PostgreSQL】创建枚举类型和修改枚举值

这篇具有很好参考价值的文章主要介绍了【PostgreSQL】创建枚举类型和修改枚举值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.说明

在postgresql中可以定义枚举数据类型,但是它可以增加和修改枚举值,不能删除已经定义好的枚举值

2.创建枚举类型

创建枚举类型的语法如下,注意枚举类型的顺序就是枚举值的顺序

CREATE TYPE order_status_enum AS ENUM ('START','WAIT_ACCOUNT');

在表中使用枚举值

CREATE TABLE "public"."order" (
"id" int4 NOT NULL DEFAULT nextval('order_id_seq'::regclass),
"status" "public"."order_status_enum" NOT NULL DEFAULT 'START'::order_status_enum,
);

3.增加和修改枚举值

如果你想要在已经定义好的枚举类型中添加新的枚举值,以使用下面的写法

ALTER TYPE order_status_enum ADD VALUE 'END';

4.修改枚举值

如果你对某个枚举值不满意,可以直接修改它

ALTER TYPE order_status_enum RENAME VALUE 'END' TO 'FINISH';

5.删除枚举值

如果想要删掉某个枚举值,操作方法是,重新定义一个枚举类型替换掉原有的枚举类型,比如说我这里有一个order表,它的status字段是名为order_status_enum的枚举类型文章来源地址https://www.toymoban.com/news/detail-817560.html

# 1.将原有枚举改名
ALTER TYPE "public"."order_status_enum" RENAME TO "order_status_enum2";

# 2.创建同名枚举类型
CREATE TYPE order_status_enum AS ENUM ('START');

# 3.修改拥有者
ALTER TYPE "public"."order_status_enum" OWNER TO "postgres";

# 4.如果字段有设置默认值。要先删除掉,请先备份好数据
ALTER TABLE "order" ALTER COLUMN status DROP DEFAULT;

# 5.修改字段的枚举类型
ALTER TABLE "public"."order" ALTER COLUMN "status" TYPE "order_status_enum" USING "status"::text::order_status_enum;

# 6.重新设置默认值(如果有需要)
ALTER TABLE "order" ALTER COLUMN status SET DEFAULT 'START';

# 7.删掉旧的枚举类型
DROP TYPE "public"."order_status_enum2";

到了这里,关于【PostgreSQL】创建枚举类型和修改枚举值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Postgresql创建用户与数据库并赋予权限

    1、使用postgres登录pgsql 2、添加名为iuser的用户,并设置密码 3、给iuser用户,创建数据库叫work_base 4、授予iuser当前work_base的全部权限 4.1、 先退出postgre数据库 4.2、登录work_base数据库 4.3、将work_base的所有权限赋予iuser

    2024年01月22日
    浏览(55)
  • PG-DBA培训04:PostgreSQL数据类型与数据库设计规范

    一、风哥PG-DBA培训04:PostgreSQL数据类型与数据库设计规范 本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL数据库SQL开发与应用实战阶段之PostgreSQL数据类型与数据库设计规范,学完本课程可以掌握PostgreSQL SQL语句基础讲解,PostgreSQL SQL语言基础知识,安

    2024年02月11日
    浏览(59)
  • C# 使用EntityFramework CodeFirst 创建PostgreSQL数据库

    1.先创建一个ASP.Net Web应用程序,选择Web API  2、创建EntityLib、EF、AppService三个类库。EntityLib用于存放数据库表所对应的实体,AppService用于编写用户对实体的一些操作方法,如增删改查等操作。  创建好所有类库之后,需要添加引用库EntityFramework6.Npgsql,右击项目中的引用——

    2024年02月16日
    浏览(44)
  • MyBatis-Plus 查询PostgreSQL数据库jsonb类型保持原格式

    在这篇文章,我们保存了数据库的jsonb类型:MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询 这篇文章介绍了模糊查询json/jsonb类型:PostgreSQL 查询json/jsonb是否存在某个片段 在模糊查询json/jsonb之前,我们得拿到正确的json/jsonb片段,比如我们模糊查询好几个连着的键值对,

    2024年02月15日
    浏览(63)
  • PostgreSQL Linux操作PostgreSQL数据库

    PostgreSQL教程 菜鸟教程:https://www.runoob.com/postgresql/postgresql-tutorial.html 登录PG数据库:psql -U 用户名(U需要大写) 登录PG数据库(指定主机、端口,并进入指定数据库): psql -U 用户名 -h 127.0.0.1 -p 5432 -d 数据库名 -U 登录的用户名 -h 连接的主机(默认127.0.0.1,可替换成远程主机

    2024年02月11日
    浏览(64)
  • PostgreSql 数据类型

    分类名称 说明 与其他数据库的对比 布尔类型 pg支持sql标准的boolean数据类型 与mysql中的bool、boolean类型相同,占用1字节存储空间 数值类型 2字节的smallint、4字节的integer、8字节的bigint、精确类型的小数numeric、非精确的浮点小数real和double precision、自增序列类型serial,bigserial、

    2024年02月12日
    浏览(42)
  • PostgreSQL(五)常用数据类型

    数据类型 别名 说明 character(n) char(n) 定长字符串,不足补空格 character varying(n) varchar(n) 变长字符串 text 变长字符串 数据类型 别名 说明 范围 smallint int2 有符号2字节整数 :-32768 到 +32767 integer int 、 int4 有符号4字节整数 :-2147483648 到 +2147483647 bigint int8 有符号8字节整数 :-922337203

    2024年02月06日
    浏览(46)
  • PostgreSQL 9.6 文档: 数据类型

    目录 8.1. 数字类型 8.1.1. 整数类型 8.1.2. 任意精度数字 8.1.3. 浮点类型 8.1.4. 序数类型 8.2. 货币类型 8.3. 字符类型 8.4. 二进制数据类型 8.4.1.  bytea 的十六进制格式 8.4.2.  bytea 的逃逸格式 8.5. 日期/时间类型 8.5.1. 日期/时间输入 8.5.2. 日期/时间输出 8.5.3. 时区 8.5.4. 间隔输

    2024年02月07日
    浏览(32)
  • 简述PostgreSQL中json数据类型

            JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语

    2024年02月06日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包