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来修改序列,比如:
4、删除序列
使用drop来删除序列,比如:
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) | Powered by Discuz! X3.2 |