序列是oracle提供的用于生成一系列唯一数字的数据库对象,序列会自动生成顺序递增的序列号,以实现自动提供唯一的主键值,系列可以在多个用户并发环境中使用,并且可以为所有用户生成不重复的顺序数字,而不需要任何额外的I/O开销。

创建序列

序列和视图一样,并不占用实际的存储空间,只是在数据字典中保存他的定义信息。当创建序列时必须拥有create sequence系统权限。

语法格式:

create  sequence seq_name

[start  with  n]

[minvalue  n  |  nomainvalue]

[maxvalue  n |  nomaxvalue]

[cache  n  |   ncache]

[cycle   |   nocycle]

[order   |  noorder];

含义:

seq_name:创建的序列名。

Increment :该子句是可选的,表示序列的增量。一个正数将生成一个递增的序列,一个负数将生成一个递减的序列。默认值为1

minvalue:可选的子句,决定序列生成的最小值。

maxvalue:可选的子句,决定序列生成的最大值。

start: 可选的子句,制定序列的开始位置。默认情况下,递增序列的起始值为minvalue,递减序列的起始值为maxvalue。

cache:该选项决定是否产生序列号预分配,并存储在内存中。

cycle: 可选的关键字,当序列到达最大值(maxvalue)或者最小值(minvalue)时可复位并继续下去。如果达到极限。生成的下一个数据将分别是最小值或者最大值。如果使用NO CYCLE 选项,那么在序列达到最大值或最小值之后,如果再试图获取下一个值将返回一个错误。

order:  该选项可以保证生成的序列值是按顺序产生的。例如:order可以保证第一个请求得到的数为1,第二个请求得到的数为2,以此类推而NOODDER只保证序列的值唯一性,不保证产生列值的顺序。

例子:

create  sequence   seq_dept

maxvalue  99--序列产生产生的最大值。

start  with  50 --从50开始

increment  by  10--每次跳10个序列号递增

cache  10;--在系统中预分配10个。将来生成的序列号为50,60,70,80,90

注意:

使用序列时,需要用到序列的两个伪列NexVal与CurrVal。其中nextval将返回序列生成的下一个序列号,而伪列currval则会返回序列的当前序列号。需要注意,首次引用序列时,必须使用伪列nextval。

例如:insert  into  scott.dept(deptno,dname,loc)  values(seq_dept.nextval,'development',default);

执行以上句子后,会为dept表插入一条数据,并且deptno列会使用序deptno_seq生成的序列号。另外,如果用户要确定当前序列号,可以使用伪列currval。

例如:    select  seq_dept   from  dual;

当sequence的值到达了最大值之后,若选择了cycle属性,那么会复位到最小值继续增加依次循环。

oracle最大值填充,Oracle sequence值到了最大值的处理相关推荐

  1. oracle序列号查询最大值,Oracle sequence值到了最大值的处理

    序列是oracle提供的用于生成一系列唯一数字的数据库对象,序列会自动生成顺序递增的序列号,以实现自动提供唯一的主键值,系列可以在多个用户并发环境中使用,并且可以为所有用户生成不重复的顺序数字,而不需 ...

  2. oracle 左边填充,oracle中左填充(lpad)和右填充(rpad)的介绍与用法

    这篇文章主要跟大家介绍了关于oracle中左填充(lpad)和右填充(rpad)的相关资料,通过填充我们可以固定字段的长度,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下 ...

  3. JDBC读取新插入Oracle数据库Sequence值的5种方法

    Oracle的sequence实现非常灵活,所以也带来一些易用性问题,如何取到新插入记录生成的sequence值与其它数据库有较大差别,本文详国介绍了5种实现读取新插入记录sequence值的方法. ...

  4. java代码读取dbsequence的值_JDBC读取新插入Oracle数据库Sequence值的5种方法

    //公共代码:得到数据库连接 public Connection getConnection() throwsException{ Class.forName("oracle.jdbc.dr ...

  5. Oracle中序列(Sequence)详解

    Oracle中序列(Sequence)详解 一 序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用 ...

  6. oracle函数胡书写,Oracle中序列表sequence的使用.docx

    Oracle中序列表sequence的使用 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按 序列号排序的地方. 1. create sequence 你首先 ...

  7. oracle的sequence是什么,关于Oracle的序列(Sequence)使用内容是什么呢?

    关于Oracle的序列(Sequence)使用序列是一数据库对象,利用它可生成唯一的整数.一般使用序列自动地生成主键值.对我们程序员来讲,精力时间有限,我们只学最有用的知识.大家请看: 1) 建立序列 ...

  8. Oracle中的序列 sequence 用法

    sybase 同埋sqlserver 系冇序列呢样野的. 但系oralce有. oralce 序列简单d来讲类似于sybase的递增列的机制, 但是sybase 一张表只允许1个递增列, 而oracl ...

  9. oracle查询表nextval,Oracle Database 建立与查询 Sequence

    相关的 Oracle Database Sequence 资讯如下: 建立 Sequence 语法 create sequence ._s increment by 1 start with 1 ma ...

最新文章

  1. 求求你别再写上千行的类了,试试这些牛逼的重构技巧吧
  2. html页面判断其他div为空,将外部html加载到div中 - 页面加载然后变为空白
  3. Mysql重置初始密码的方法
  4. 用VS studio 2008做sql server 报表出现乱码
  5. C#10在List, Queue 以及Stack中使用EnsureCapacity方法来提升性能
  6. JS与Object-C交互补充
  7. 20年的老程序员对新入行的朋友的一些建议
  8. Docker Weave 介绍 or 工作原理
  9. 使用idea练习springmvc时,出现404错误总结
  10. Windows 中实现 Java 本地方法
  11. JavaScript文档说明
  12. php实现facebook登陆功能
  13. Photoshop抠图(磁性套索工具及几个常用案例)
  14. 线性回归——加州房价预测
  15. 推荐10个免费实用的资源网站,值得收藏
  16. java模拟微信抢红包金额算法规则二倍均值法模拟(满满的注释)
  17. 20元充电宝 身边的炸弹?选购留意电芯
  18. 刀柄锥度气动量仪检测
  19. Pandas中的Dataframe和Series
  20. PyQt 6(二) 亲手编写界面

热门文章

  1. 一文聊透 Dubbo 优雅停机
  2. IntelliJ IDEA 2019.2最新解读:性能更好,体验更优,细节处理更完美!
  3. 御泥坊搜索引擎优化网络诊断_掌握以下这些网络营销搜索引擎优化技巧,你的排名想不靠前都难!...
  4. 排序后顺序错乱java_排列顺序不对怎么调
  5. linux分区模型,linux设备驱动模型详解.pdf
  6. Eclipse europa 更新时 Error retrieving feature.xml. [error in opening zip file]
  7. python调用大华sdk
  8. opencv 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突
  9. faceboxes笔记
  10. python itertools模块实现排列组合