序列是生成唯一的连续序号的对象。有点像SQLServer里面的种子标识,可以用来实现自增。
CREATE SEQUENCE S_NO --序列名
START WITH 1 --起始值
INCREMENT BY 1 --自增值
MAXVALUE 200 --最大值
MINVALUE 1 --最小值
NOCYCLE --超过最大值是否从头算起
CACHE 10; --内存中预先分配的序列号
创建序列需要权限 CREATE SEQUENCE;
CACHE 10 :指的是预先分配的序列号。比如当用户要取序列 1 时,1~10就会一起生成好,这样下次取序列2时,就不用先进行计算了,直接取序列2就行。
CREATE SEQUENCE S_NO2 --序列名
START WITH 1 --起始值
INCREMENT BY 1 ; --自增值
select * from user_sequences
查看自身用户创建的的序列信息可以用user_sequences ; 查看所有用户的序列信息可以用 dba_sequences
我们可以看见,各个值的默认值,当没有指明值的时候,MIN_VALUE默认是1,MAX_VALUE是10^28,不进行循环,CACHE_SIZE为20;
使用SEQUENCE 时, CURRVAL 获取当前序列;NEXTVAL 获取下一个序列;首次使用SEQUENCE时要使用NEXTVAL对序列进行初始化,否则会报错。