一、序列的简介 序列是一数据库对象,利用它可生成唯一的整数。 一般使用序列自动地生成主码值。一个序列的值是由特别的Oracle程序自动生成,因而序列避免了在运用层实现序列而引起的性能瓶颈。 Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。 当一个序列号生成时,序列是递增,独立于事务的提交或回滚。 二、创建序列 drop table student cascade constraints; create table student( sid int not null primary key, sno number(12), sname varchar2(32), address varchar2(64), birthday date ); 格式: create sequence stu_seq --序列名 increment by 1 -- 每次加几个 start with 1 -- 从1开始计数,初始值 nomaxvalue/maxvalue n/minvalue n -- 不设置最大值/最大/最小 nocycle/cycle -- 一直累加,不循环/循环 cache 10/nocache; --缓存几个值,默认20 例子: create sequence stu_seq increment by 1 start with 1 minvalue 1 maxvalue 999999999 nocycle cache 10 三、查询序列 nextval: 返回序列中下一个有效的值,任何用户都可以引用 currval: 中存放序列的当前值 例子: select stu_seq.nextval "nextval", stu_seq.currval "currval" from dual; insert into student (sid,sno,sname,address) values (stu_seq.nextval,1001,‘张三‘,‘北京海淀‘) 四、修改序列 alter sequence 序列名 [increment by n] [{maxvalue/ minvalue n|nomaxvalue}] [{cycle|nocycle}] [{cache n|nocache}]; 不能修改序列的初始值 五、删除序列 drop sequence 序列名;
时间: 2024-10-20 21:17:19