知识大全 Oracle中Sequence的使用

Posted

篇首语:智者不为愚者谋,勇者不为怯者死。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle中Sequence的使用相关的知识,希望对你有一定的参考价值。

Oracle中Sequence的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Oracle提供了sequence对象 由系统提供自增长的序列号 通常用于生成数据库数据记录的自增长主键或序号的地方

  下面介绍一下关于sequence 的生成 修改 删除等常用的操作:

   创建 Sequence

  使用如下命令新建sequence(用户需要有CREATE SEQUENCE 或者CREATE ANY SEQUENCE权限):

  CREATE  SEQUENCE test_sequence  INCREMENT  BY        每次加的个数据   START  WITH         从 开始计数   NOMAXVALUE        不设置最大值   NOCYCLE          一直累加 不循环   CACHE  ;    [注意] 如果设置了CACHE值 ORACLE将在内存里预先放置一些sequence 以使存取速度更快 cache里面的取完后 oracle自动再取一组到cache 但是 使用cache可能会跳号 当遇到数据库突然异常down掉(shutdown abort) cache中的sequence就会丢失 因此 推荐在create sequence的时候使用 nocache 选项

   使用 sequence:

  sequence CURRVAL    返回 sequence的当前值 sequence NEXTVAL    增加sequence的值 然后返回 sequence 值

  [注意] 第一次NEXTVAL返回的是初始值 随后的NEXTVAL会自动增加你定义的INCREMENT BY值 然后返回增加后的值

  CURRVAL 总是返回当前SEQUENCE的值 但是在第一次NEXTVAL初始化之后才能使用CURRVAL 否则会出错 一次NEXTVAL会增加一次 SEQUENCE的值 所以如果你在同一个语句里面使用多个NEXTVAL 其值就是不一样的

  sequence 存储在数据字典中 存储于user_sequences表   LAST_NUMBER 为最终序列号 也就是sequence游标当前所在的位置

  //get sequence last_number

  SELECT LAST_NUMBER FROM USER_SEQUENCES WHERE SEQUENCE_NAME=TEST_SEQNAME

  // NEXTVAL 使游标指向下一位(增一或减一)

  SELECT SEQNAME NEXTVAL FROM USER_SEQUENCES 得到下一位游标的值

   修改 Sequence

  用户必须拥有ALTER ANY SEQUENCE 权限才能修改sequence 可以alter除start至以外的所有sequence参数 如果想要改变start值 必须 drop sequence 再 re create

  命令格式如下

  ALTER  SEQUENCE test_sequence  INCREMENT  BY      MAXVALUE     CYCLE         到 后从头开始   NOCACHE ;

cha138/Article/program/Oracle/201311/17614

相关参考

知识大全 如何在Oracle中使用Sequence

如何在Oracle中使用Sequence  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在SQL

知识大全 oracle单独导出序列方法

  方法一:  SELECTCREATESEQUENCE||SEQUENCE_NAME||INCREMENTBY||  INCREMENT_BY||STARTWITH||LAST_NUMBER||MA

知识大全 oracle创建自动增长列、触发器

  创建自动增长列  createsequenceemp_sequence  incrementby每次增加几个  minvalue最小值为  nomaxvalue不限制最大值  startwith从

知识大全 oracle数据库如何创建自增列的技巧教程

  Oracle没有自增字段这样的功能但是通过触发器(trigger)和序列(sequence)可以实现  先建一个测试表了  createtableuserlogin(  id  

知识大全 UVA 10534 Wavio Sequence(dp + LIS)

UVA10534WavioSequence(dp+LIS)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 删除oracle服务项中不用的服务

  oracle服务项中有不用的服务应该如何处理呢?下面就为您介绍删除oracle服务项中不用的服务的实现方法希望对您学习oracle服务项方面能有所帮助  管理-->oracle服务项里面删不掉的服

知识大全 在ASP中利用Oracle Object for OLE访问Oracle 8

在ASP中利用OracleObjectforOLE访问Oracle8  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 Oracle中传输表空间

数据库知识:Oracle中传输表空间  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle

知识大全 Oracle中归档模式的定义

Oracle中归档模式的定义  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  oracle的归档模

知识大全 ORACLE中ROWNUM用法总结!

ORACLE中ROWNUM用法总结!  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORACLE