度量快速开发平台-专业、快速的软件定制快开平台

标题: Oracle序列sequence用法总结 [打印本页]

作者: 万望    时间: 2020-4-30 22:39
标题: Oracle序列sequence用法总结

oracle数据库中序列的使用非常普遍,尤其是在给表中建立编码用作主键的时候,本文总结下有关oracle数据库中序列的知识。

1、创建序列

CREATE SEQUENCE 序列名

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE/MINVALUE n|NOMAXVALUE/NOMINVALUE}]

[{CYCLE|NOCYCLE}]

[{CACHE n|NOCACHE}];

上面是创建序列的基本语法,注意各个属性之间不用加逗号,下面详细的介绍其中的意义:

(1)increment:表示步长,即每次增长的长度,若省略,则默认为1;若为负值,则表示是以此步长递减。

(2)start with:序列的第一个值,即初始值,默认为1。

(3)maxvalue:序列生成器产生的最大值,选项nomaxvalue为默认值,表示没有最大值限制。此时,对于递增序列,最大值是10的27次方;对于递减序列,最大值-1。

(4)minvalue:序列生成器产生的最小值,选项nominvalue为默认值,表示没有最小值限制。此时,对于递减序列,最小值是-10的26次方;对于递增序列,最小值是1。

(5)cycle和nocycle:表示当序列生成器的值达到限制后是否循环,如果循环,当序列增到最大值时,循环到最小值;当序列递减到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值会发生错误。

(6)cache:定义存放序列的内存块的大小,默认为20。nocache表示不对序列进行内存缓冲,对序列进行内存缓冲,可以改善序列的性能。如果设置了cache,那么oracle就可以预先在内存中放置一些序列,这样存取就会快些;缓存里面的取完后,oracle自动再取一组序列到缓存中。使用cache或许会跳号,比如数据库突然不正常了,缓存中的序列就会丢失,这时候就有重新取序列导致跳号,所以可在创建序列的时候用nocache防止这种情况。

2、使用序列

定义好序列以后,通过currval取得当前序列值,nextval取得下一个值。

3、更改序列

使用alter来修改序列,比如:


  1. ALTER SEQUENCE test_seq
  2. INCREMENT BY 20
  3. MAXVALUE 999999
  4. NOCACHE NOCYCLE;
复制代码

4、删除序列

使用drop来删除序列,比如:

  1. DROP SEQUENCE test_seq;
复制代码





作者: 陈晓龙    时间: 2020-5-1 14:07

作者: 陈晓龙    时间: 2020-5-1 14:08





欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2