oracle序列的创建、删除和使用

创建序列

create sequence TEST --序列名
minvalue 1 --定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方;对于递增序列,--最小值是1。
maxvalue 999999999999999999999999999 --定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最--大值是10的27次方;对于递减序列,最大值是-1。
start with 1 --定义序列的初始值(即产生的第一个值),默认为1。
increment by 1 --INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。
nocache --不缓存到内存里,如果要缓存,可以用【cache 缓存大小】来代替nocache
cycle--表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;最小值为1。对于递减序---列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。
order;--排序,不需要可以不加这个选项

其他

一、cache
如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些.cache里面的取完后,oracle自动再取一组到cache.使用cache或许会跳号,比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。
二、order
1.保证序列号按请求顺序产生.如果你想以序列号作为timestamp(时间戳)类型的话,可以采用该选项.对于将序列用于生成主键来说,约定顺序通常并不重要.
2.ORDER和NOORDER的区别表现在并行服务和独占服务之间.打个比方:双CPU对同一个oracle  DB中的ABC sequence申请序号时,这时就有两个请求A和B,假设A请求在前B在后,现在ABC序列中的值为9.如果添加了ORDER选项,那么一定是A请求到9,B请求到10.但如果没有添加此选项,则有可能B请求到9,A请求到10. 在单CPU中,可以用Java摸拟多线程作测试
三、操作序列
查询序列当前值和下一个值
SELECT  CURRVAL,NEXTVAL FROM DUAL;
删除序列
DROP SEQUENCE [schema].序列名;

时间: 2024-10-08 11:34:14

oracle序列的创建、删除和使用的相关文章

Oracle 序列的创建删除插入

今天学习的是序列的创建蟹盖和删除插入 创建: create Sequence Seq_name increment by n     ----序列变化的程度,默认为1,可以为负数表示递减 start with n           ----序列的初始值,默认值为1 maxvalue n          ----序列的最大值,必须大于start的值 minvalue n           ----序列的最小值,小于start的值 cycle                    ----表示

Oracle序列使用:建立、删除

在开始讲解Oracle序列使用方法之前,先加一点关于Oracle client sqlplus的使用,就是如果执行多行语句的话一定要加“/”才能表示结束,并执行!本篇文章的主题是通过创建Oracle序列和触发器实现表的主键自增. 1.首先创建序列,Oracle序列的语法格式为:CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/ MINVALUE n|NOMAXVALUE}][{CYCLE|NOCYCLE}][{CACHE n|

oracle中如何创建表的自增ID(通过序列)

1.什么是序列呢? 序列是一数据库对象,利用它可生成唯一的整数.一般使用序列自动地生成主码值.一个序列的值是由特别的Oracle程序自动生成,因而序列避免了在运用层实现序列而引起的性能瓶颈. Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的. 当一个序列号生成时,序列是递增,独立于事务的提交或回滚.容许设计缺省序列,不需指定任何子句.该序列为上升序列 ,由1开始,增量为1,没有上限. 2.创建/修改序列的语法 --创建序列的语法 -- create sequence [user.]

oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)

这篇文章主要介绍了oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包等相关资料,需要的朋友可以参考下 oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的.和PL/SQL程序相比,存储

Oracle用户的创建和删除

1. 创建用户: SQL> create user user01 identified by user01; User created. 但登录提示01045的错误,缺少CREATE SESSION权限. ERROR: ORA-01045: user USER01 lacks CREATE SESSION privilege; logon denied Enter user-name: 此时需要赋予connect权限给用户(原因见(2)),登陆后创建表提示01031错误: SQL> creat

【转】Oracle重置序列(不删除重建方式)

Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译.不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequence的nextval,记住,把递增改为负的这个值(反过来走),然后再改回来. 假设需要修改的序列名:seq_name 1.select seq_name.nextval from dual; //假设得到结果5656 2.alter sequence seq_name increment by -5

oracle 序列 详解

序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l  自动提供唯一的数值 l  共享对象 l  主要用于提供主键值 l  将序列值装入内存可以提高访问效率 创建序列: 1.  要有创建序列的权限 create sequence 或 create any sequence 2.  创建序列的语法 CREATE SEQUENCE sequence  //创建序列名称        [INCREMENT BY n]  //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1

Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作

Oracle如何实现创建数据库.备份数据库及数据导出导入的一条龙操作 Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操作,使得我们不再为Oracle本身丑陋.难用的UI而抱怨.由于我们一般都是建建表.查查数据的操作居多,较少会考虑系统的整个Oracle的完整备份操作.但是在我们一些发布操作中,我们必须考虑如何把Oracle的对象.表数据导出到Sql脚本中,并且把创建Oracle表空间.创建Oracle数据库的操作也

Oracle数据库视图创建与处理方法教程

有关Oracle数据库视图创建与处理方法教程. 分享下oracle中创建视图与处理视图的方法,学习oracle视图的使用方法. 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 视图是存储在数据字典里的一条select语句.通过创建视图可以提取数据的逻辑上的集合或组合. oracle视图的优点:1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分.2.用