天天看点

18.序列

一、创建默认序列

create sequence myseq;
           

二、创建含有步长和起始值的序列

create sequence myseq increment by 1 start with 0;
           

三、使用序列的nextval属性

insert into mydept values(myseq.nextval,'系统软件部');
           

四、删除序列

drop sequence myseq;
           

五、修改序列

alter sequence myseq increment by 2;
           

六、创建表时使用自动序列

6.1 先创建一个表

create table mydept(deptnum number,dname varchar2(20)); 
           

6.2 为deptnum列创建序列

create sequence deptnum_seq increment by 1 start with 0;
           

6.3 为该表创建触发器

create or replace trigger mydept_trigger 
before
insert on mydept
for each row
begin
select deptnum_seq.nextval into :New.deptnum from dual;
end;
           

6.4 插入数据进行验证

insert into mydept (dname) values ('系统软件部');
           

七、创建表时使用自动序列(oracle 12c以后的版本支持)

create table mydept(deptno number generated by default as identity ( start with 1 increment by 1),dname varchar2(20)); 
           

继续阅读