序列

序列
序列不占用实际的存储空间,在数据字典中存储序列的定义描述

dba_sequences
all_sequences
user_sequences

create sequence sequence_name
[start with integer]
[increment by integer]
[Maxvalue integer|NoMaxValue]  递增序列最大值为(10^28)-1
[Minvalue integer|NoMinValue]  递减序列的最大值为-1
[Cache|NoCache]  预先分配并保留在内存中的值的个数为20
[Cache integer|NoCache];

SQL> create sequence departments_seq
     start with 10
     increment by 10
     maxvalue 999
     nocache;

序列的伪列属性:
    1. NextVal: 产生一个序列值
    2. CurrVal: 返回序列的当前值

序列值不能重复生成,一个序列只能被使用一次,一个序列通常只被一个数据库对象占用
序列的start with参数不能被修改

SQL> alter sequence departments_seq 
     increment by 100 
     maxvalue 15000 
     cycle cache 30;
SQL> create sequence seq_jack2 start with 100 increment by 1 maxvalue 1000 cache 20 cycle;

Sequence created.

SQL> select seq_jack2.currval from dual;
select seq_jack2.currval from dual
       *
ERROR at line 1:
ORA-08002: sequence SEQ_JACK2.CURRVAL is not yet defined in this session


SQL> select seq_jack2.nextval from dual;

   NEXTVAL
----------
       100

SQL> select seq_jack2.currval from dual;

   CURRVAL
----------
       100

SQL> 
原文地址:https://www.cnblogs.com/vmsysjack/p/12467277.html