GBase 8c
其他
文章

GBase 8c 数据类型——序列整型

发表于2023-12-07 17:35:0715次浏览0个评论

序列整型

名称

描述

存储空间

范围

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

示例

--创建表。

gbase=# CREATE TABLE smallserial_type_tab(a SMALLSERIAL);

CREATE TABLE

--插入数据。

gbase=# INSERT INTO smallserial_type_tab VALUES(default);

INSERT 0 1

--再次插入数据。

gbase=# INSERT INTO smallserial_type_tab VALUES(default);

INSERT 0 1

--查看数据。

gbase=# SELECT * FROM smallserial_type_tab;

a

---

1

2

(2 rows)

--创建表。

gbase=# CREATE TABLE serial_type_tab(b SERIAL);

CREATE TABLE

--插入数据。

gbase=# INSERT INTO serial_type_tab VALUES(default);

INSERT 0 1

--再次插入数据。

gbase=# INSERT INTO serial_type_tab VALUES(default);

INSERT 0 1

--查看数据。

gbase=# SELECT * FROM serial_type_tab;

b

---

1

2

(2 rows)

--创建表。

gbase=# CREATE TABLE bigserial_type_tab(c BIGSERIAL);

CREATE TABLE

--插入数据。

gbase=# INSERT INTO bigserial_type_tab VALUES(default);

INSERT 0 1

--插入数据。

gbase=# INSERT INTO bigserial_type_tab VALUES(default);

INSERT 0 1

--查看数据。

gbase=# SELECT * FROM bigserial_type_tab;

c

---

1

2

(2 rows)

--创建表。

gbase=# CREATE TABLE largeserial_type_tab(c LARGESERIAL);

CREATE TABLE

--插入数据。

gbase=# INSERT INTO largeserial_type_tab VALUES(default);

INSERT 0 1

--插入数据。

gbase=# INSERT INTO largeserial_type_tab VALUES(default);

INSERT 0 1

--查看数据。

gbase=# SELECT * FROM largeserial_type_tab;

c

---

1

2

(2 rows)

--删除表。

gbase=# DROP TABLE smallserial_type_tab;

DROP TABLE

gbase=# DROP TABLE serial_type_tab;

DROP TABLE

gbase=# DROP TABLE bigserial_type_tab;

DROP TABLE

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

评论

登录后才可以发表评论