AUTO INCREMENT(自动增长) 会在新记录插入表中时生成一个唯一的数字。
GBase 8s 使用序列来标识字段的自增长,数据类型有 serial、serial8 和 bigserial 。
GBase 8s 使用序列字段类型来标识字段的自增长。
SERIAL、SERIAL8 和 BIGSERIAL 范围:
类型 | 存储大小 | 范围 | 备注 |
---|---|---|---|
SERIAL | 4字节 | 1 到 2,147,483,647 | 0是占位符,与INTEGER类型相同的存储方式 |
SERIAL8 | 10字节 | 1 到 922,337,2036,854,775,807 | 0是占位符,与INT8类型相同的存储方式 |
BIGSERIAL | 8字节 | 1 到 922,337,2036,854,775,807 | 0是占位符,与BIGINT类型相同的存储方式 |
语法
SERIAL 数据类型基础语法如下:
CREATE TABLE tablename (
colname SERIAL
);
实例
假定我们要创建一张 COMPANY 表,并创建下面几个字段:
DROP TABLE IF EXISTS COMPANY;
CREATE TABLE COMPANY(
ID SERIAL PRIMARY KEY,
NAME VARCHAR(40) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY DECIMAL(10,2),
JOIN_DATE DATE DEFAULT TODAY
);
其中ID为序列字段
现在往表中插入几条记录(0为序列字段的占位符):
INSERT INTO COMPANY VALUES (0, '李雷', 37, '北京', 20000.00,'2005-05-13');
INSERT INTO COMPANY VALUES (0, '韩梅梅', 35, '天津', 16000.00, '2007-12-18');
INSERT INTO COMPANY VALUES (0, '林涛', 36, '上海', 25000.00, '2006-01-04');
INSERT INTO COMPANY VALUES (0, '魏华', 36, '西安', 15000.00, '2007-08-30');
INSERT INTO COMPANY VALUES (0, '露茜', 34, '伦敦', 22000.00, '2008-08-08');
INSERT INTO COMPANY VALUES (0, '莉莉', 34, '伦敦', 22000.00, '2008-08-08');
INSERT INTO COMPANY VALUES (0, '吉姆', 35, '华盛顿', 16000.00, '2010-12-13');
INSERT INTO COMPANY VALUES (0, '汤姆', 36, '渥太华', 21000.00, '2010-04-30');
查看 COMPANY 表的记录如下:
id | name | age | address | salary | join_date |
---|---|---|---|---|---|
1 | 李雷 | 37 | 北京 | 20000.00 | 2005-05-13 |
2 | 韩梅梅 | 35 | 天津 | 16000.00 | 2007-12-18 |
3 | 林涛 | 36 | 上海 | 25000.00 | 2006-01-04 |
4 | 魏华 | 36 | 西安 | 15000.00 | 2007-08-30 |
5 | 露茜 | 34 | 伦敦 | 22000.00 | 2008-08-08 |
6 | 莉莉 | 34 | 伦敦 | 22000.00 | 2008-08-08 |
7 | 吉姆 | 35 | 华盛顿 | 16000.00 | 2010-12-13 |
8 | 汤姆 | 36 | 渥太华 | 21000.00 | 2010-04-30 |
ID列显示为自动增长。