li
  当前位置:主页 > 配置管理 > 文章内容
li
Oracle数据库中sequence的基本用法
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2008-04-14   阅读:19  

  1、Create Sequence

    在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方。

  (注释:你需要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限)

  CREATE SEQUENCE emp_sequence

  INCREMENT BY 1 -- 每次加几个

  START WITH 1 -- 从1开始计数

  NOMAXVALUE -- 不设置最大值

  NOCYCLE -- 一直累加,不循环

  CACHE 10;

  只要定义了emp_sequence,你就可以用使CURRVAL,NEXTVAL

  CURRVAL=返回 sequence的当前值

  NEXTVAL=增加sequence的值,然后返回 sequence 值

  例如:

  emp_sequence.CURRVAL

  emp_sequence.NEXTVAL

  可以使用sequence的地方:

  · 不包含子查询、snapshot、VIEW的 SELECT 语句

  ·INSERT语句的子查询中

  ·NSERT语句的VALUES中

  ·UPDATE 的 SET中

  可以看如下例子:

  INSERT INTO emp VALUES

  (empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);

  SELECT empseq.currval FROM DUAL;

  需要注意的是:

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

  - 假如指定CACHE值,Oracle就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,Oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。

  2、Alter Sequence

  你需要有sequence的owner,或者拥有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create .

  Alter sequence示例:

  ALTER SEQUENCE emp_sequence

  INCREMENT BY 10

  MAXVALUE 10000

  CYCLE -- 到10000后从头开始

  NOCACHE ;

  可以影响Sequence的初始化参数:

  SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。

  简单的Drop Sequence

  DROP SEQUENCE order_seq;




  上一篇: libXp.so.6: cannot open shared...   下一篇: Oracle sql loader批量导入数据
li
 §相关评论  
 热点文章

·oracle Logfile的不同状态说明
·Oracle数据库的一些常用操作经
·Oracle10g(10.2) 在Redhat AS4
·oracle工具:浅谈LogMiner的使用
·RHAD AS4 上安装 Oracle 数据库
·oracle基础知识(物理结构)
·oracle基础:Oracle中null的使用
·Oracle常用基本语法操作集锦
·oracle数据库查询前台正在发出
·AIX+ORACLE10G安装手册
·oracle数据库9i升级到oracle10
li
 编辑推荐
·oracle Logfile的不同状态说明
·Oracle数据库的一些常用操作经
·Oracle10g(10.2) 在Redhat AS4
·oracle工具:浅谈LogMiner的使用
·RHAD AS4 上安装 Oracle 数据库
·oracle基础知识(物理结构)
·oracle基础:Oracle中null的使用
·Oracle常用基本语法操作集锦
·oracle数据库查询前台正在发出
·AIX+ORACLE10G安装手册
·oracle数据库9i升级到oracle10
li
 相关篇章
·libXp.so.6: cannot open shared...
·Oracle 11g Alert Log日志信息的...
·oracle 11g新特性:SQL Plan Mana...
·oracle 11g ORA-00845: MEMORY_T...
·oracle日常基本操作技巧汇总
·基于裸设备的在linux下建立oracl...
·表空间、数据文件和控制文件——...
·ORA-00844: Parameter not takin...
·利用EXP/IMP进行数据迁移,如何转...
·利用EXP/IMP进行数据迁移,如何转...
·Oracle sql loader批量导入数据
·oracle dba之metalink.oracle.co...
·如何修改Oracle数据库进程及会话
·如何简单有效关闭Oracle死锁进程
·oracle sequence与会话有关的一个...
·Oracle特殊包使用和DBMS_Job包使...
·oracle数据字典基础学习
·Red Hat Linux AS4_U1 上安装 Or...
·Oracle常用数据字典总结
·Oracle常用网址,欢迎各位网友补...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接