zoukankan      html  css  js  c++  java
  • 序列(Sequence)创建、使用、修改和删除

    序列(Sequence)是用来生成连续的整数数据的对象。序列常常用来作为主键中增长列,序列中的可以升序生成,也可以降序生成。

    语法结构:创建序列

     1 CREATE SEQUENCE sequence_name
     2 
     3 [START WITH num]
     4 
     5 [INCREMENT BY increment]
     6 
     7 [MAXVALUE num|NOMAXVALUE]
     8 
     9 [MINVALUE num|NOMINVALUE]
    10 
    11 [CYCLE|NOCYCLE]
    12 
    13 [CACHE num|NOCACHE]

    语法解析:

    ① START WITH:从某一个整数开始,升序默认值是1,降序默认值是-1。

    ② INCREMENT BY:增长数。如果是正数则升序生成,如果是负数则降序生成。升序默认值是1,降序默认值是-1。

    ③ MAXVALUE:指最大值。

    ④ NOMAXVALUE:这是最大值的默认选项,升序的最大值是:1027,降序默认值是-1。

    ⑤ MINVALUE:指最小值。

    ⑥ NOMINVALUE:这是默认值选项,升序默认值是1,降序默认值是-1026。

    ⑦ CYCLE:表示如果升序达到最大值后,从最小值重新开始;如果是降序序列,达到最小值后,从最大值重新开始。

    ⑧ NOCYCLE:表示不重新开始,序列升序达到最大值、降序达到最小值后就报错。默认NOCYCLE。

    ⑨ CACHE:使用CACHE选项时,该序列会根据序列规则预生成一组序列号。保留在内存中,当使用下一个序列号时,可以更快的响应。当内存中的序列号用完时,系统再生成一组新的序列号,并保存在缓存中,这样可以提高生成序列号的效率。Oracle默认会生产20个序列号。

    ⑩ NOCACHE:不预先在内存中生成序列号。

    实例:

    创建一个从1开始,默认最大值,每次增长1的序列,要求NOCYCLE,缓存中有30个预先分配好的序列号。

    SQL> CREATE SEQUENCE MYSEQ
        MINVALUE 1
        START WITH 1
        NOMAXVALUE
        INCREMENT BY 1
        NOCYCLE
        CACHE 30
        /
    Sequence created

    序列创建之后,可以通过序列对象的CURRVAL和NEXTVAL两个“伪列”分别访问该序列的当前值和下一个值

    实例:

     1 QL> SELECT MYSEQ.NEXTVAL FROM DUAL;
     3 NEXTVAL
     4 ----------
     5    1
     6 
     7 SQL> SELECT MYSEQ.NEXTVAL FROM DUAL;
     9 NEXTVAL
    10 ----------
    11    2
    12 
    13 SQL> SELECT MYSEQ.CURRVAL FROM DUAL;
    15 CURRVAL
    16 ----------
    17    2

    使用ALTER SEQUENCE可以修改序列,在修改序列时有如下限制:

    1. 不能修改序列的初始值。

    2. 最小值不能大于当前值。

    3. 最大值不能小于当前值。

    使用DROP SEQUENCE命令可以删除一个序列对象。

    实例:

    1 SQL> ALTER SEQUENCE MYSEQ
    2     MAXVALUE 10000
    3     MINVALUE -300
    4     /
    5 SEQUENCE ALTERED
    6 
    7 SQL> DROP SEQUENCE MYSEQ;
    8 SEQUENCE DROPPED
  • 相关阅读:
    优化不易,且写且珍惜
    作为过来人的感悟:进了小公司的程序员如何翻身进入大公司
    腾讯/阿里/百度 BAT人才体系的职位层级、薪酬、晋升标准
    校招生向京东发起的“攻势”,做到他这样,你,也可以
    通过Java 线程堆栈进行性能瓶颈分析
    基于Spring Cloud的微服务落地
    多线程技术使用指南
    Android 处理含有EditText的Activity虚拟键盘
    Android ListView的监听事件
    Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
  • 原文地址:https://www.cnblogs.com/rxhuiu/p/9115680.html
Copyright © 2011-2022 走看看