[21天学通Oracle 第二版 ]第11章 序列.pptVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 序列 在数据库中,ID往往作为数据表的主键。ID的创建规则又往往使用自增的整数。在SQL SERVER和MySQL中提供了自增的字段类型,但是Oracle中并未提供该用法。在10.4节中 ,为了获得下一条记录的EMPLOYEE_ID,不得不首先获得数据表中已有ID的最大值,并为之增加1。 Oracle还提供了另外一种策略——序列。 创建序列; 使用序列; 修改序列属性。 11.1 创建和使用序列 序列(SEQUENCE)像其他数据库对象(表、约束、视图、触发器等)一样,是实实在在的数据库对象。一旦创建,即可存在于数据库中,并可在适用场合进行调用。序列总是从指定整数开始,并按照特定步长进行累加,以获得新的整数。本节着重讲解序列的创建和使用。 11.1.1 创建序列 创建序列,应该使用create sequence命令。本范例演示了如何创建一个用于生成表employee主键ID的序列。 create sequence employee_seq; select object_name, object_type, status from user_objects where lower(object_name) = employee_seq; select sequence_name, min_value, max_value, increment_by from user_sequences where lower(sequence_name) = employee_seq; 11.1.2 使用序列 对于序列,有两个重要的属性——currval和nextval。其中currval用于获得序列的当前值,而nextval则用于获得序列的下一个值。每次调用nextval,都会使序列的当前值增加单位步长(默认步长为1)。 序列的调用方法为seq.currval和seq.nextval。但是,需要注意的是,在序列创建之后,应该首先使用seq.nextval,然后才能够使用seq.currval。 select employee_seq.currval from dual; select employee_seq.nextval from dual; select employee_seq.currval from dual; alter table t_employees modify (employee_id number primary key); alter trigger tr_after_insert_employee disable; insert into t_employees values (employee_seq.nextval, 陆逊, 0, ACT); 11.1.3 序列初始值start with 为了解决employee_seq的nextval属性不适合表t_employee的问题。可以首先删除序列,然后重建该序列,并在重建时指定初始值。 drop sequence employee_seq; create sequence employee_seq start with 12; insert into t_employees values (employee_seq.nextval, 陆逊, 0, ACT); select * from t_employees; 11.2 修改序列属性 向其他数据库对象一样,可以通过alter命令修改序列属性。可修改的属性包括minvalue、maxvalue、increment_by、cache和cycle。 11.2.1 修改minvale和maxvalue minvalue和maxvalue用于指定序列的最小值和最大值。序列最小值的意义在于限定start with和循环取值时的起始值;而最大值则用于限制序列所能达到的最大值。序列最小值不能大于序列的当前值。例如,尝试将序列employee_start with的最小值设置为20,Oracle将会抛出错误提示。 alter sequence employee_seq minvalue 20; alter sequence employee_seq maxvalue 99999; alter sequence employee_seq nomaxvalue; 11.2.2 修改increment by increment by相当于编程语言for循环中的步长。即每次使用nextval时,在当前值累加该步长来获得新值。序列的默认步长为1,可以通过alter命令和increment by选项来修改序列步长。 alter sequence test_seq increment by

文档评论(0)

awang118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档