数据仓库服务 GAUSSDB(DWS)-数值类型:序列整型

时间:2023-11-10 17:34:12

序列整型

SMALLSERIAL,SERIAL和BIGSERIAL类型不是真正的类型,只是为在表中设置唯一标识而存在的概念。因此,创建一个整数字段,并且把它的缺省数值安排为从一个序列发生器读取。应用了一个NOT NULL约束以确保NULL不会被插入。在大多数情况下用户可能还希望附加一个UNIQUE或PRIMARY KEY约束避免意外地插入重复的数值。最后,将序列发生器从属于那个字段,这样当该字段或表被删除的时候也一并删除该序列。目前只支持在创建表时指定SERIAL列,不可以在已有的表中增加SERIAL列。另外临时表也不支持创建SERIAL列。因为SERIAL不是真正的类型,也不可以将表中存在的列类型转化为SERIAL。

表4 序列整型

名称

描述

存储空间

范围

SMALLSERIAL

二字节序列整型。

2字节

1 ~ 32,767

SERIAL

四字节序列整型。

4字节

1 ~ 2,147,483,647

BIGSERIAL

八字节序列整型。

8字节

1 ~ 9,223,372,036,854,775,807

示例:

创建带有序列类型的表。

1
CREATE TABLE smallserial_type_tab(a SMALLSERIAL);

插入数据。

1
INSERT INTO smallserial_type_tab VALUES(default);

再次插入数据。

1
INSERT INTO smallserial_type_tab VALUES(default);

查看数据。

1
2
3
4
5
6
SELECT * FROM smallserial_type_tab;  
 a 
---
 1
 2
(2 rows)

插入NULL值会报错。

1
2
INSERT INTO smallserial_type_tab VALUES(NULL);
ERROR:  dn_6001_6002: null value in column "a" violates not-null constraint
support.huaweicloud.com/sqlreference-dws/dws_06_0009.html