Sequences目的,就是得到一个自动递减或递增的值。
Sequences就是一个计数器,类似于Sql Server数据库中自动增加的数字。
因为Oracle数据库中,建表的时候,没有自动增量的这样一个数字类型字段,
所以有时候需要用到这类字段的时候,就要调用Sequences来取得值。
Sequences可以设置为,当使用到设定的最大值时,是否重新开始循环使用。
调用时,直接写在Sql里即可,比如:
select sequence.NEXTVAL from dual;
sequence的目的就是设置某一列自增长。
创建方法:
1、Create Sequence
首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。
CREATE SEQUENCE SI_EXTERNAL_SEQ --SI_EXTERNAL_SEQ要创建的sequence的名字
INCREMENT BY 1 --每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
2、read Sequence
Select SI_EXTERNAL_SEQ.Nextval As hao from dual;--每次需要变的只有SI_EXTERNAL_SEQ这个sequence的名字
这样每次读出来的sequence都比上一个自增1个.
Sequences是一种序列,基本用它的地方都是结合触发器来用,自增序列和自减序列
比如在表中插入一条数据时 给表中的一个字段自动赋值 就是通过序列完成的
以我现在的认识是,可以把序列的值插入到列中作为每列的id号,这个id号自动增长。序列是独立的,下次再用或插入到不同表,他的值都是顺序且不重复的。你用到了才会体会到这种机制的好处
Sequences自动增长
比如:
ID NAME
1 SS11
2 DDSS
3 SSAA
4 DDAA
上面的这张表,ID这个列是顺序增长的,就可以用Sequences