1. 序列作用和含义
序列是用于生成唯一、连续序号的对象;可以是升序的,也可以是降序的;
使用create sequence
语句创建序列
create sequence 序列名
start with 1
increment by 1
maxvalue 10000
nocycle
cache 10;
nocycle 在达到最大值后停止生成下一个值
cache 指定在内存中预先分配的序号数 默认为20
2. 序列的使用
2.1 直接使用序列
nextval 返回序列的下一个值
currval 返回序列的当前值
第一次使用序列的值时,必须使用nextval
create table student (sno number,sname varchar(2));
insert into student values(s1.nextval,'a');
insert into student values(s1.nextval,'a');
insert into student values(s1.nextval,'a');
insert into student values(s1.nextval,'a');
commit;
2.2 配合触发器隐式使用
create or replace trigger squ_test before insert on student
for each row
begin
select s1.nextval into:new.sno from dual;
end;
2.3 修改删除序列
使用alter sequence语句修改序列,不能修改序列的start with参数
alter sequence s1 maxvalue 5000 cycle;
删除序列
drop sequence s1;