Oracle sequence

序列sequence
CREATE SEQUENCE donny.seq  --也是属于某个用户的,以下参数均可省略,使用默认值。
INCREMENT BY 1 --指定序列之间的间隔,正负整数;默认1,正为升序,负为降序。
START WITH 1 --第一个序列号,默认=MINVALUE
NOMAXVALUE --设置最大值,此处表示默认10的27次幂。MAXVALUE 10
NOMINVALUE --设置最小值,此处表示默认-10的26次幂。MINVALUE 1
NOCYCLE   --或者CYCLE;表示序列达到最大或者最小(降序)后,要不要从头开始
CACHE 10;   --默认CACHE 20, 事先分配多少序列号放在内存中,提高速度。

访问序列:
oracle为序列提供了两个伪列,可以看作其属性。
Nextval: 根据increment by得到的一个新的序列值。每次执行都会得到一个新值。
Currval: current value, 当前值,已经被取得的值。

Select seq.nextval from dual;
Select seq.currval from dual;

使用序列:
insert into t values(seq.nextval);

修改序列:
alter sequence seq …..重新指定各个参数
不能修改start with;除非删除重建

删除序列:
drop sequence seq;

数据字典:
desc dba_sequences / user_…/ all….

 

posted @ 2008-12-28 14:45  Athrun  阅读(302)  评论(0编辑  收藏  举报