欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【DM】关于数据库你需要知道的事——序列

程序员文章站 2022-06-01 23:06:16
...

摘要

定义

序列是一个数据库实体,通过它多个用户可以产生唯一整数值,可以用序列来自动地生成主关键字值。

语法

CREATE SEQUENCE [ <模式名>.] <序列名> [ <序列选项列表>];
<序列选项列表> ::= <序列选项>{<序列选项>}
<序列选项> ::=
INCREMENT BY <增量值>|
START WITH <初值>|
MAXVALUE <最大值>|
NOMAXVALUE|
MINVALUE <最小值>|
NOMINVALUE|
CYCLE|
NOCYCLE|
CACHE <缓存值>|
NOCACHE|
ORDER |
NOORDER |
GLOBAL |
LOCAL

实战

创建

一般来讲,你创建序列是只需要执行最大值、最小值及增量即可。也可以什么都不指定。最简单的创建方式是这样的:

CREATE SEQUENCE [NAME];

这种情况下默认的最大值为 9223372036854775807,最小值为1,增量为1。这意味着,序列每被调用一次,它产生的值将会+1,从1开始,到9223372036854775807结束。如果想指定最大值、最小值和增量,那么应该这样写:

CREATE SEQUENCE SE2 INCREMENT BY 10 START WITH 10 MAXVALUE 1000;

increment by后面是增量。

使用

构建场景

--建表
DROP TABLE IF EXISTS TEST CASCADE;
CREATE TABLE TEST(
    ID INT,
    NAME VARCHAR(20)
);
--建序列
CREATE SEQUENCE SE2 INCREMENT BY 10 START WITH 10 MAXVALUE 1000;
--序列插值
INSERT INTO TEST VALUES(SE2.NEXTVAL,'WU');
INSERT INTO TEST VALUES(SE2.NEXTVAL,'WU');
INSERT INTO TEST VALUES(SE2.NEXTVAL,'WU');
DROP SEQUENCE SE2;

效果截图

【DM】关于数据库你需要知道的事——序列

结果分析

可以看出,采用序列对ID进行插值后,起始ID为10,后面每次递增10。序列的值会在数据库中得到驻留,即取即用,适合应用在数值有规律增长的列上。

相关标签: 数据库 数据库