栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

LightDB中的枚举类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LightDB中的枚举类型

枚举类型时包含一系列有序的静态值集合的一个数据类型,等于某些变成语言中的enum类型。

枚举类型的使用

与MySQL不一样,在LightDB中使用枚举类型需要先使用CREATE TYPE来创建此枚举类型。我们先列举个示例:

-- 建立一个名为week的枚举类型
CREATE TYPE week AS ENUM ('Sun', 'Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat');
--建表,插入数据
create table duty(persion text, day week);
insert into duty values('aa','Sun');
insert into duty values('bb','Mon');

-- 查询结果
postgres@postgres=# select * from duty;
 persion | day 
---------+-----
 aa      | Sun
 bb      | Mon
(2 rows)

postgres@postgres=# select * from duty where day='Sun';
 persion | day 
---------+-----
 aa      | Sun
(1 row)

--如果类型不对,会报错
postgres@postgres=# select * from duty where day='Suna';
ERROR:  invalid input value for enum week: "Suna"
LINE 1: select * from duty where day='Suna';

定义好类型后,我怎么查看类型有没有创建或者查询有类型的具体定义呢?在ltsql中可通过dT命令查看枚举类型的定义:

postgres@postgres=# dT week
     List of data types
 Schema | Name | Description 
--------+------+-------------
 public | week | 
(1 row)

postgres@postgres=# dT+ week
                                      List of data types
 Schema | Name | Internal name | Size | Elements |  Owner   | Access privileges | Description 
--------+------+---------------+------+----------+----------+-------------------+-------------
 public | week | week          | 4    | Sun     +| postgres |                   | 
        |      |               |      | Mon     +|          |                   | 
        |      |               |      | Tues    +|          |                   | 
        |      |               |      | Wed     +|          |                   | 
        |      |               |      | Thur    +|          |                   | 
        |      |               |      | Fri     +|          |                   | 
        |      |               |      | Sat      |          |                   | 
(1 row)

也可以直接查询系统表pg_enum查看枚举类型的定义:

postgres@postgres=# select * from pg_enum;
  oid  | enumtypid | enumsortorder | enumlabel 
-------+-----------+---------------+-----------
 20984 |     20983 |             1 | Sun
 20986 |     20983 |             2 | Mon
 20988 |     20983 |             3 | Tues
 20990 |     20983 |             4 | Wed
 20992 |     20983 |             5 | Thur
 20994 |     20983 |             6 | Fri
 20996 |     20983 |             7 | Sat
(7 rows)
枚举类型说明

在枚举类型中,值的顺序是创建枚举类型时定义的顺序,所有的比较运算符及相关的聚集函数都可以支持枚举类型。可以看下面的例子:

postgres@postgres=# select min(day),max(day) from duty;
 min | max 
-----+-----
 Sun | Mon
(1 row)

postgres@postgres=# select enum_first(null::week), enum_last(null::week);
 enum_first | enum_last 
------------+-----------
 Sun        | Sat
(1 row)

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017511.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号