【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;
效果截图
结果分析
可以看出,采用序列对ID进行插值后,起始ID为10,后面每次递增10。序列的值会在数据库中得到驻留,即取即用,适合应用在数值有规律增长的列上。
上一篇: CPU插槽接触不良导致无法启动
下一篇: 你真的知道如何设置数据库连接池的大小吗