序列
— sequence 序列
— 序列是数据库的一种对象,用于生成一串不重复的编号,可以递增或递减
作用:
可以为表中列自动产生值
由用户创建数据库对象来创建序列(sequence),并且可以由多个用户共享
一般用在主键或者唯一列
1.创建序列:
语法:
create sequence 序列名称
start with 开始数字 默认是1
increment by 增长数字 默认是1
minvalue 最小值 默认是1
maxvalue 最大值 默认是1
cache 批量生成多少个序号,使用完后再生成一批,用于序列的创建优化,默认是20
例子:
create sequence myseq –创建序列名
start with 1 –从1开始
increment by 1 –每次增长1
maxvalue 999999 –最大值 //nomaxvalue(不设置最大值)
minvalue 1 –最小值
cycle –循环 //nocycle(一直累加,不循环)
nocache –不使用缓存
解释:从1开始,每次增长1,最大值999999,之后循环从1开始。
2.使用序列
— 序列在使用时,可以使用序列的两个伪列: currval -取得序列的当前值,nextval – 获取序列的下一个值
— 序列创建后currval是没有值的,必须先使用nextval获取下一值,这是序列才会生产一批值
create table test(id number primary key,name varchar2(32));
insert into test values(myseq.nextval,’abc’);
insert into test values(myseq.nextval,’ddd’);
特别说明:
1、myseq:表示序列的名字,nextval:关键字,表示从序列中取下一个值。
2、sequence序列是需要配合number类型的列来使用;
3、sequence序列是要在主键或unique列上使用的。
3. 删除序列
drop sequence seq_test;