• 序列(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
  • 相关阅读:
    项目源码--Android即时通讯IM客户端
    项目源码--Android美图秀秀源码
    实例源码--IOS高仿微信打飞机游戏(完整功能)
    项目源码--IOS自定义视频播放器
    精品教程--IOS零基础开发环境搭建
    项目源码--Android答题类游戏源码
    项目源码--Android类似酷狗音乐播放器
    项目源码--JSP在线客服系统(SSH框架技术)源码
    项目源码--JAVA基于LBS地理位置信息应用的服务端
    项目源码--Android视频MV类网站客户端
  • 原文地址:https://www.cnblogs.com/rxhuiu/p/9115680.html
Copyright © 2020-2023  润新知