创建序列
CREATE SEQUENCE sequence_name
[START WITH num]
[INCREMENT BY increment]
[MAXVALUE num|NOMAXVALUE]
[MINVALUE num|NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE num|NOCACHE]
(1)start with
从某一个整数开始,升序默认值是1,除序默认值是-1.
(2)increment by
增长数。如果是正数则升序生成,如果是负数则降序生成。升序默认值 是1,降序默认值是-1.
(3)maxvalue
最大值。
(4)minvalue
最小值。
(5)nomaxvalue
升序的是1027,降序是-1
(6)nominvalue
升序是1,降序是-1026
(7)cycle
表示如果升序达到最大值后,从最小值重新开始,降序同理。
(8)nocycle
表示不重新开始。
(9)cache
为了更快的响应,保存在内存中的一些序列,默认20个。
(10)nocache
不预先在内存中生成序列号。
生成序列号
SQL> CREATE SEQUENCE MYSEQ
MINVALUE 1
START WITH 1
NOMAXVALUE
INCREMENT BY 1
NOCYCLE
CACHE 30
/
Sequence created
使用
SQL> SELECT MYSEQ.NEXTVAL FROM DUAL;
NEXTVAL
----------
SQL> SELECT MYSEQ.NEXTVAL FROM DUAL;
NEXTVAL
----------
SQL> SELECT MYSEQ.CURRVAL FROM DUAL;
CURRVAL
----------
修改
使用alter sequence可以修改序列,在修改序列时有如下限制:
(1)不能修改序列的初始值
(2)最小值不能大于当前值
(3)最大值不能小于当前值
SQL> ALTER SEQUENCE MYSEQ
MAXVALUE 10000
MINVALUE -300
/
SEQUENCE ALTERED
SQL> DROP SEQUENCE MYSEQ;
SEQUENCE DROPPED