• oracle学习篇十:序列


    序列:是用来生成唯一、连续的整数的数据库对象。序列通常用来自动生成主键或唯一键的值。

    1. 创建序列语法如下:
    Create SEQUENCE sequence_name
    [START WITH integer]
    [INCREMENT BY integer]
    [MAXVALUE integer|NOMAXVALUE]
    [MINVALUE integer|NOMINVALUE]
    [CYCLE|NOCYCLE]
    [CACHE interger|NOCACHE];

    其中:START WITH: 是指定要生成的第一个序列号。对于升序序列,其默认值为序列的最小值。对于降序序列,其默认值为序列的最大值。
    INCREMENT BY:是用于指定序列号之间的间隔。其默认值为1。如果integer为正值,则生成的序列将按升序排列,否则按降序排列。
    MAXVALUE: 指定序列可以生成的最大值。
    NOMAXVALUE: 这是默认选项,将升序序列的最大值设为10的27次幂,将降序序列的最大值设为-1。
    MINVALUE: 指定序列的最小值。MINVALUE必须小于或等于START WITH的值,并且必须小于MAXVALUE。
    NOMINVALUE: 这是默认选项,将升序序列的最小值设为1,将降序序列的最小值设为-10的26次幂。
    CYCLE: 指定序列在达到最大值或最小值后,将继续从头开始生成值。
    NOCYCLE: 这是默认选项。指定序列在达到最大值或最小值后,将不能再继续生成值。
    CACHE: 使用CACHE选项可以预先分配一组序列号,并将其保留在内存中,这样可以更快的访问序列号。
    NOCACHE: 此项则不会为加快速度而预先分配序列号。如果在创建序列时忽略了CACHE和NOCACHE选项,Oracle将默认缓存20个序列号。

    示例3:Create SEQUENCE toys_seq
    START WITH 10
    INCREMENT BY 2
    MAXVALUE 2000
    MINVALUE 10
    NOCYCLE
    CACHE 30;

    2. 访问序列:可以通过CURRVAL和NEXTVAL伪列来访问该序列的值。
    示例4:演示从序列toys_seq中选择值插入toys表中的toyid列。执行成功将会在该表的toyid列插入值"P10"和"P12"。
    INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTVAL,'TWENTY',25);
    INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTVAL,'MAGIC PENCIL',75);

    示例5:演示如何查看序列当前值
    Select toys_seq.CURRVAL from dual;

    3. 更改序列:ALTER SEQUENCE命令用于设置或删除MINVALUE或MAXVALUE、修改增量值、修改缓存中的序列号的数目。
    修改序列语法如下:注意,不能修改序列的START WITH参数。在修改序列时,应注意升序序列的最小值应小于最大值。
    ALTER SEQUENCE [schema.]sequence_name
    [INCREMENT BY integer]
    [MAXVALUE integer|NOMAXVALUE]
    [MINVALUE integer|NOMINVALUE]
    [CYCLE|NOCYCLE]
    [CACHE interger|NOCACHE];

    示例6:演示如何设置一个新的MAXVALUE,并为toys_seq序列打开了CYCLE。
    ALTER SEQUENCE toys_seq
    MAXVALUE 5000
    CYCLE;

    可以查询字典视图User_Sequences来查看用户所创建的序列的详细信息

    4.删除序列语法:Drop SEQUENCE toys_seq;

  • 相关阅读:
    pstree---树状图的方式展现进程
    telint---切换当前正在运行的Linux系统的运行等级
    batch---系统不繁忙时执行任务
    crontab---定时任务
    runlevel---当前Linux系统的运行等级
    kill&&pkill&&killall---删除执行中的程序
    at&&atq&&atrm---定时任务
    fsck---于检查并且试图修复文件系统中的错误
    mkfs---创建Linux文件系统
    gitignore
  • 原文地址:https://www.cnblogs.com/brant/p/5637871.html
Copyright © 2020-2023  润新知