GBase 8c
其他
文章

序列整型数据类型概要说明

GBase社区管理员
发表于2024-02-06 10:08:587次浏览0个评论

GBase 8c数据库中序列整型数据类型简介如下:

表 序列整型

名称

描述

存储空间

范围

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

LARGESERIAL

十六字节序列整形

16字节

-170,141,183,460,469,231,731

,687,303,715,884,105,728 ~

+170,141,183,460,469,231,73

1,687,303,715,884,105,727

示例

--创建表。
postgres=#CREATE TABLE smallserial_type_tab(a SMALLSERIAL);
CREATE TABLE 
--插入数据。
postgres=#INSERT INTO smallserial_type_tab VALUES(default);
INSERT 0 1 
--再次插入数据。
postgres=#INSERT INTO smallserial_type_tab VALUES(default);
INSERT 0 1 
--查看数据。
postgres=#SELECT * FROM smallserial_type_tab;
a
---
1
2
(2 rows) 
--创建表。
postgres=#CREATE TABLE serial_type_tab(b SERIAL);
CREATE TABLE 
--插入数据。
postgres=#INSERT INTO serial_type_tab VALUES(default);
INSERT 0 1 
--再次插入数据。
postgres=#INSERT INTO serial_type_tab VALUES(default);
INSERT 0 1 
--查看数据。
postgres=#SELECT * FROM serial_type_tab;
b
---
1
2
(2 rows) 
--创建表。
postgres=#CREATE TABLE bigserial_type_tab(c BIGSERIAL);
CREATE TABLE 
--插入数据。
postgres=#INSERT INTO bigserial_type_tab VALUES(default);
INSERT 0 1 
--插入数据。
postgres=#INSERT INTO bigserial_type_tab VALUES(default);
INSERT 0 1 
--查看数据。
postgres=#SELECT * FROM bigserial_type_tab;
c
---
1
2
(2 rows) 
--创建表。
postgres=#CREATE TABLE largeserial_type_tab(c LARGESERIAL);
CREATE TABLE 
--插入数据。
postgres=#INSERT INTO largeserial_type_tab VALUES(default);
INSERT 0 1 
--插入数据。
postgres=#INSERT INTO largeserial_type_tab VALUES(default);
INSERT 0 1 
--查看数据。
postgres=#SELECT * FROM largeserial_type_tab;
c
---
1
2
(2 rows) 
--删除表。
postgres=#DROP TABLE smallserial_type_tab;
DROP TABLE
postgres=#DROP TABLE serial_type_tab;
DROP TABLE
postgres=#DROP TABLE bigserial_type_tab;
DROP TABLE

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

评论已关闭