oracle数据库中序列使用讲解

oracle数据库中序列使用讲解
定义:
   序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。
   其主要的用途是生成表的主键值,可以在插入语句中使用,也可以通过查询检查当前值,或使序列增至下一个值。
   创建序列需要使用CREATE SEQUENCE系统权限,序列的创建方法:
      create sequence 序列名
      [increment by n]
      [start with n]
      [{maxvalue/minvalue n|nomaxvalue}]
      [{cycle/nocycle}]
      [{cache n|nocache}];
释义:
   increment by:用于定义序列的步长,若果省略,则默认为1,若果出现负值,则代表序列的值是按照此步长递减的。
   start with:定义序列的初始值(即产生的第一个值),默认为1
   maxvalue:定义序列的最大值。minvalue:定义序列的最小值。nomaxvalue:表示默认选项,没有最大值定义。
   cycle/nocycle:表示当序列生成器的值达到限制值后是否循环,cycle表示循环,nocycle表示不循环。
   cache/nocache:定义存放序列的内存块儿的大小,默认为20。nocache:表示不对序列进行内存缓冲。对序列进行内
               存缓冲可以改善缓存的性能。
删除序列的语法:
   drop sequence 序列名;
序列的使用:
   currval和nextval来引用序列:
   调用mextval将生成序列中的下一个序列号,调用时指出序列名,即用以下方法:
   序列名.nextval;
   currval用于产生序列的当前值,无论调用多少次都不会产生序列的下一个值,如果序列还没有通过调用nextval产生
   过序列的下一个值,先引用currval将没有意义。
调用currval的方法如下:
   序列名.currval;
   第一次调用nextval会产生序列的初始值。
将序列作为表的主键的方法:
   在向表中插入数据时调用nextval方法
   insert into 表名 values (序列名.nextval,值1,值2,...);
 
 

猜你喜欢

转载自www.cnblogs.com/zja001/p/10145229.html