create sequence name
increment by x //x为增长间隔
start with x //x为初始值
maxvalue x //x为最大值
minvalue x //x为最小值
cycle //循环使用,到达最大值或者最小值时,从新建立对象
cache x //制定缓存序列值的个数
1、Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
SELECT empseq.currval FROM DUAL;
其实序列号发生器是和表没有任何关系的独立对象,他的每一次访问都会发生变化,这样就可以保证它能满足多用户的需求,我们也可以根据这个序列号发生器自己定义有特点的序列号。但是我们要保证每一次插入的记录都有序列号,要做一些容错方面的处理。
固定长度序列号可以用下面的语句:
SELECT TO_CHAR(EMP_SEQUENCE.NEXTVAL,'099999999999') FROM DUAL;