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….
申明
非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!
博文欢迎转载,但请给出原文连接。