• --:)欢迎访问锋网源码(:--
  • 首页
  • RSS订阅
  • 常用软件
  • 网页模板
  • 网站运作
  • 锋网学院
  • 繁體中文

  • 学院首页
  • 新闻资讯
  • 网站运营
  • 网站开发
  • 美工设计
  • 数据库类
  • 服务器类
  • 网络应用
  • 操作系统
  • 软件教学
编程开发   认证考试   网络安全   文章搜索: 高级搜索
会员登录/控制面版 您的位置: 学院首页 >> 最新文章 >> 文章内容
 

精彩推荐

 
 

本类推荐文章

 
 

本类阅读排行

  • Linux技巧:bz2文件如何解压缩..
  • 如何在网页上实现音乐播放?..
  • Photoshop制作精美的简历封面..
  • 成人影片女明星Jameson推出手..
  • 给“我的电脑”改图标
  • 如何在oracle存储过程中返回..
  • Postfix 读书心得
  • 妙用Windows XP安装盘修复损..
  • Domino控制台指令大全
  • Photoshop绘中秋佳节的一轮明..
  • 谈谈网络顾问服务行业
  • 手机QQ2006测试版20日开始免..
  • Linux下Flash/Shockwave播放..
  • 教你用代理服务器登录QQ
  • Photoshop照片转手绘效果
  • Photoshop帮漂亮美女换衣服
  • 更改Internet Explorer的图标..
  • Windows Vista与XP如何实现互..
  • 更改IE的图标
  • SQL分页语句
 
 

掌握Oracle数据库中sequence的用法

  • 日期:2008-01-01     人气:     出处:本站     作者:
  • 字体大小:
  • 小
  • 中
  • 大

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

1、Create 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;

相关文章
  • document.createElement()用法及注意事项
  • WEB标准教程:功能相似的标签的用法
  • ASP关于类的Let,Set和Get的用法的异同
  • Oracle数据库重做日志文件丢失后的恢复
  • Flash教程:if条件语句的用法
  • Oracle数据库中sequence的用法
  • 使Oracle数据库保持优良性能
  • Oracle数据库中的临时表用法
  • SQL Server中“函数”的两种用法
  • 正确进行Oracle数据库性能完全保护
相关软件

  • 网友评论:
  • 查看所有评论
  • 我要发表评论
 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 加入收藏 | 帮助中心 |

Copyright © 2006-2007 fwvv.net  程序支持:木翼  皖ICP备06004916号