序列整型
名称 | 描述 | 存储空间 | 范围 |
---|---|---|---|
SMALLSERIAL | 二字节序列整型。 | 2字节 | -32,768 ~ +32,767 |
SERIAL | 四字节序列整型。 | 4字节 | -2,147,483,648 ~ +2,147,483,647 |
BIGSERIAL | 八字节序列整型。 | 8字节 | -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 |
说明:
SMALLSERIAL,SERIAL和BIGSERIAL类型不是真正的类型,只是为在表中设置唯一标识做的概念上的便利。因此,创建一个整数字段,并且把它的缺省数值安排为从一个序列发生器读取。应用了一个NOT NULL约束以确保NULL不会被插入。在大多数情况下用户可能还希望附加一个UNIQUE或PRIMARY KEY约束避免意外地插入重复的数值,但这个不是自动的。最后,将序列发生器从属于那个字段,这样当该字段或表被删除的时候也一并删除它。目前只支持在创建表时候指定SERIAL列,不可以在已有的表中,增加SERIAL列。另外临时表也不支持创建SERIAL列。因为SERIAL不是真正的类型,也不可以将表中存在的列类型转化为SERIAL。
示例:
--创建表。
openGauss=# CREATE TABLE smallserial_type_tab(a SMALLSERIAL);
--插入数据。
openGauss=# INSERT INTO smallserial_type_tab VALUES(default);
--再次插入数据。
openGauss=# INSERT INTO smallserial_type_tab VALUES(default);
--查看数据。
openGauss=# SELECT * FROM smallserial_type_tab;
a
---
1
2
(2 rows)
--创建表。
openGauss=# CREATE TABLE serial_type_tab(b SERIAL);
--插入数据。
openGauss=# INSERT INTO serial_type_tab VALUES(default);
--再次插入数据。
openGauss=# INSERT INTO serial_type_tab VALUES(default);
--查看数据。
openGauss=# SELECT * FROM serial_type_tab;
b
---
1
2
(2 rows)
--创建表。
openGauss=# CREATE TABLE bigserial_type_tab(c BIGSERIAL);
--插入数据。
openGauss=# INSERT INTO bigserial_type_tab VALUES(default);
--插入数据。
openGauss=# INSERT INTO bigserial_type_tab VALUES(default);
--查看数据。
openGauss=# SELECT * FROM bigserial_type_tab;
c
---
1
2
(2 rows)
--删除表。
openGauss=# DROP TABLE smallserial_type_tab;
openGauss=# DROP TABLE serial_type_tab;
openGauss=# DROP TABLE bigserial_type_tab;