网站大量收购闲置独家精品文档,联系QQ:2885784924

(精)oracle中序列的使用.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle 数据库应用与设计 杭州电子科技大学 * 1 5 序列的使用,锁的概念及使用 ——序列的使用 目标 在完成本章学习后,你将掌握下列技能: 理解序列的概念 创建序列 使用序列 本章内容 什么是序列 序列的创建 序列的使用 本章内容导航 什么是序列 序列的创建 序列的使用 什么是序列 要解决主键值的唯一性 保证数字的自动增长 在一些数据库中,亦称为:标识,自动增长字段,种子值,ID编号 关于序列的分类 自动增长字段 : ACCESS 自动编号 对DB2,MySQL,?MS?SQL?Server,?Sybase和HypersonicSQL的内置标识字段提供支持。返回的标识符是long,?short?或者int类型的。 序列 在PostgreSQL,?Oracle,?SAP?DB,?McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。返回的标识符是long,?short或者?int类型的。 序列的引入 两个案例分析: 1. 同步序号 同时控制两张以上的表协同操作,使其中一个字段同步变化。?? 序列的引入 两个案例分析: 2.序号循环 产生序号规则: a.产生序号长度(12位)=日期(8位)+可循环的序列号(4位) b.日期变更时,序号重新计数 例如:200604240001……200604248716 200604250001……200604255671 ?? 序列的模拟 模拟的序列表表结构 序列 序列是按照某种模式自动生成整数的一种机制。 序列具有名称,指出了请求下一个值时引用序列的方式。 序列不与任何特定的表或列相关联。 增长方式可为升序,也可为降序。 编号之间的间隔可随意。 达到限额时,序列可循环。 1 2 3 4 5 本章内容导航 什么是序列 序列的创建 序列的使用 序列的创建 创建语法 序号是一个发布唯一数字的ORACLE 对象,在需要时,每次按1或一定增量增加。序号通常用于产生表中的唯一主键或唯一索引等。 命令语法: ? CREATE SEQUENCE [user.]sequence [INCREMENT BY {1|integer}] [START WITH integer] [MAXVALUE integer|NOMAXVALUE] [MINVALUE integer|NOMINVALUE] [CYCLE|NOCYCLE] [CACHE{20|integer}|NOCACHE] 本章内容导航 什么是序列 序列的创建 序列的使用 序列的使用 建立Sequence例子: create sequence emp_sequence increment by 1 start with 1 nomaxvalue nocycle cache 10;? create sequence ORDER_SEQ minvalue 1 maxvalue 99999 start with 1 increment by 1 cache 10 cycle; 序列的使用 序列的使用 每使用一次,nextval自动增1,currval是多次使用的值,如果一开始就用,则其值为0,一般情况下是在nextval使用之后才能使用currval: Insert into line_items(orderno,partno,quantity) values(order_seq.nextval,20231,3); Insert into line_items(orderno,partno,quantity) values(order_seq.currval,29374,1); 本章内容小结 序列的概念(一种产生增长值的对象) 序列创建(几种重要的文件) 序列的使用(currval和nextval) 序列 要检索序列中的下一个值,请根据其名称引用它;序列与表或与列之间没有关联。 如果没有将序列定义为循环序列,则指定编号出现后,不会再次出现该编号。有时,应用程序请求一个值,但是该值从未结束在数据库中的使用或存储。这样可能会造成存储编号的表中出现编号不连续。 通过缓存序列号可改善性能,因为为了加速访问,内存中预分配了一组编号。如果存在实例失败的情况,就不会使用任何缓存的序列号,这会造成间隔。 注:如果应用程序要求不能存在间隔,那么应用程序应实施一个自定义编号生成器。但是,此方法会导致性能下降。如果使用一个表存储一个值,而且每次请求时都

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档