
Sequence created.
【考点解析】
序列:
自动提供唯一的数值
共享对象
主要用于提供主键值
可代替应用程序生成序号
将序列值缓存到内存中,可以提高访问效率。
题意:序列seq1的生成的值已经到最大值200,再执行下列语句:
SELECT seq1.nextval FROM dual;
一个seqence设置了cycle属性,但当达到最大值时,不是从start with设置的值开始循环。而是从1开始循环。
语法;
CREATE SEQUENCE sequence
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}];
INCREMENT BY:指定序列增长步长。可以为正(升序)、负整数(降序),但不能为0。最高精度28。
START WITH: 指定序列起始数。默认为序列最小值。
MAXVALUE :指定序列最大值。最大28位。必须大于等于起始值且大于等于序列最小值。
NOMAXVALUE: 无最大值(实际为10^27或-1)。default
MINVALUE :指定序列最小值。
NOMINVALUE :无最小值(实际为1或-10^26)。Default
CYCLE :指定序列达到最大值或最小值后继续从头开始生成。
NOCYCLE :不循环生成。Default.
CACHE :指定数据库内存中预分配的序列值个数,以便快速获取。最小cache值为2。
Cache参数最大值为:(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)
【官方文档解释】


【实验步骤】
创建名为seq1的序列
SQL@XFDB>> create sequence seq1
2 start with 100
3 increment by 10
4 maxvalue 200
5 cycle
6 nocache;
SQL@XFDB> select seq1.nextval from dual;
NEXTVAL
----------
100
SQL@XFDB> /
NEXTVAL
----------
110
SQL@XFDB> /
NEXTVAL
----------
120
SQL@XFDB> /
NEXTVAL
----------
130
SQL@XFDB> /
NEXTVAL
----------
140
SQL@XFDB> /
NEXTVAL
----------
150
SQL@XFDB> /
NEXTVAL
----------
160
SQL@XFDB> /
NEXTVAL
----------
170
SQL@XFDB> /
NEXTVAL
----------
180
SQL@XFDB> /
NEXTVAL
----------
190
SQL@XFDB> /
NEXTVAL
----------
200
序列达到200后继续执行该语句,结果如下:
SQL@XFDB> /
NEXTVAL
----------
1
SQL@XFDB> /
NEXTVAL
----------
11
SQL@XFDB> /
NEXTVAL
----------
21
SQL@XFDB> /
NEXTVAL
----------
31
SQL@XFDB>
NEXTVAL
----------
41
SQL@XFDB> /
NEXTVAL
----------
51
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28373936/viewspace-2123514/ ,如需转载,请注明出处,否则将追究法律责任。