zoukankan      html  css  js  c++  java
  • Oracle中SEQUENCES的使用

             Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方.
      下面介绍一下关于sequence 的生成,修改,删除等常用的操作:
     1. 创建 Sequence 使用如下命令新建sequence(用户需要有CREATE SEQUENCE 或者CREATE ANY SEQUENCE权限): 
    CREATE SEQUENCE test_sequence 
    INCREMENT BY 1   -- 每次加的个数据 
    START WITH 1    -- 从1开始计数 
    NOMAXVALUE    -- 不设置最大值 
    NOCYCLE      -- 一直累加,不循环 
    CACHE 10 ; [注意] 如果设置了CACHE值,ORACLE将在内存里预先放置一些sequence,以使存取速度更快。cache里面的取完后,oracle自动再取一组到cache。
    但是,使用cache可能会跳号, 当遇到数据库突然异常down掉(shutdown abort),cache中的sequence就会丢失. 因此,推荐在create sequence的时候
    使用 nocache 选项。
     2. 使用 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 得到下一位游标的值
     3. 修改 Sequence 用户必须拥有ALTER ANY SEQUENCE 权限才能修改sequence.
     可以alter除start至以外的所有sequence参数. 如果想要改变start值,必须 drop sequence 再 re-create.
     命令格式如下: ALTER SEQUENCE test_sequence 
    INCREMENT BY 10
     MAXVALUE 10000 
    CYCLE    -- 到10000后从头开始
     NOCACHE ; 
    4. 删除 Sequence DROP SEQUENCE order_seq;
  • 相关阅读:
    Windows Store App 主题动画
    Windows Store App 过渡动画
    Windows Store App 控件动画
    Windows Store App 近期访问列表
    Windows Store App 文件选取器
    Windows Store App 访问应用内部文件
    Windows Store App 用户库文件分组
    Windows Store App 获取文件及文件夹列表
    Windows Store App 用户库文件夹操作
    Windows Store App 用户库文件操作
  • 原文地址:https://www.cnblogs.com/yanzi629/p/1888239.html
Copyright © 2011-2022 走看看