• ORACLE日常-序列


    一、序列的概念:在oracle中就是一个对象,这个对象用来提供一个有序的数据列,这个有序数据列的值都不会重复。

    1.序列可以自动生成唯一值;

    2.是可以可以被共享的对象;

    3.典型的被生成主键值的一个对象;

    4.可以被替代的应用程序代码;

    5.当sequence值存放在缓存中的时候可以提高访问效率。

    二、创建序列的语法:

    CREATE SEQUENCE name
    [INCREMENT BY n]
    [START WITH n]              
    [{MAXVALUE n | NOMAXVALUE}]
    [{MINVALUE n | NOMINVALUE}]
    [{CYCLE | NOCYCLE}]
    [{CACHE n | NOCACHE}]

    参数值解析:

    1.increment by n:表明值每次增长n(步长)

    2.start with n: 从n开始

    3.{MAXVALUE n | NOMAXVALUE}: 设置最大值

    4.{MINVALUE n | NOMINVALUE}: 设置最小值,start with不能小于最小值。

    5.CYCLE | NOCYCLE          : 是否循环,建议不使用

    6.CACHE n | NOCACHE    : 是否启用缓存。

    例如:

    create sequence emp_id_seq
    start with 100    //从100开始
    increment by 1   //每次增长1
    nomaxvalue       //没有最大值
    nominvalue        //没有最小值
    nocycle              //没有循环
    nocache;           //不缓存

    可以通过数据字典user_sequences来查看当前用户拥有的序列信息;

    select sequence_name,min_value,max_value,last_number
    from user_sequences
    where sequence_name = 'EMP_ID_SEQ';

    序列的属性:

    1.nextval 返回下一个可用的序列值;

    即使被不同的用户调用,每次也返回一个唯一的值;

    select emp_id_seq.nextval from dual;

    2.currval获取序列当前的值;

    在currval调用之前,必须保证nextval已经获取过一次值。

    select emp_id_seq.currval from dual;

    3.缓存:使用缓存可以提高sequence的访问效率

    三、修改序列:

    ALTER SEQUENCE name
    [INCREMENT BY n]      
    [{MAXVALUE n | NOMAXVALUE}]
    [{MINVALUE n | NOMINVALUE}]
    [{CYCLE | NOCYCLE}]
    [{CACHE n | NOCACHE}]

    注意:

    1.用户必须是序列的拥有者,或者有修改序列的权限;

    2.修改后的序列,只能对之后的值起作用;

    3.不能修改start with,如果想修改序列,只能删了重新建。

    四、删除序列:

    drop sequence seq_name;

    例如:

    drop sequence emp_id_seq;

    参考内容:https://www.cnblogs.com/yzqm666/p/5886914.html

  • 相关阅读:
    水壶-[Kruskal重构树] [解题报告]
    线性求逆元推导
    边界线与两端对齐
    左边竖条的实现方法
    $.ajax()知识
    area热点区域
    AJAX与XMLHttpRequest
    js运行机制
    优先级
    各种图形
  • 原文地址:https://www.cnblogs.com/hjwq/p/9378750.html
Copyright © 2020-2023  润新知