PostgreSQL 自定义数据类型

PostgreSQL 提供了 create type 语法用于创建自定义类型,自定义数据类型是对内置数据类型的补充,其本身基于内置数据类型实现,可以根据业务需要组合内置基础数据类型,创建自定义的复合数据类型。

1. 自定义类型

创建一个简单的自定义类型,名称为 my_type1,其包含 start 和 stop 两个 timestamp 类型的字段,如下:

create type my_type1 as (start timestamp, stop timestamp);

基于自定义类型 my_type1,再创建一个自定义类型 my_type2,如下:

create type my_type2 as (ts my_type1, name text);

使用自定义类型创建表并插入数据,如下:

create table t(c1 my_type1, c2 my_type2);
insert into t values(
                    ('2022-01-01 14:30:00','2022-01-02 14:30:00'),
                    (('2022-01-01 14:30:00','2022-01-02 14:30:00'),'abc'));

2. 枚举类型

create type 可以创建枚举类型,如下:

create type color as enum('red','blue','green');

使用枚举类型创建表,并插入数据,如下:

create table t(c1 color);
insert into t values('red');

3. 删除自定义类型

执行 drop type SQL 命令可以删除已创建的自定义类型,如下:

drop type color;

或者级联删除相关的关联对象:

drop type color cascade;

文章评论

0条评论