• 十五、序列


    一、序列(sequence)

    序列是Oracle中特有的对象, 用于生成一个自动递增的数列. 通常被用来作为主键的值.

    二、 创建序列

    a) 语法

    create sequence seq_name

        [increment by n

        start with n

        maxvalue n|nomaxvalue // 10^27 or -1

        minvalue n|nominvalue

        cycle|nocycle

        cache n|nocache]

    • Ø increment by, 代表每次增长的步长, 默认是1, 可以是负数, 表示每次递减;
    • Ø start with, 从哪个值开始, 默认是1;
    • Ø maxvalue, 序列能到达的最大值, 默认值是nomaxvalue, 此时正数最大值是10^27, 负数最大值是-1;
    • Ø minvalue, 序列能到达的最小值, 默认值是nominvalue, 此时正数的最小值是1, 负数的最小值是-10^26;
    • Ø cycle|nocycle, 表示是否循环. 如果是cycle, 达到最大值是会重新从头开始, 如果是nocycle, 最大值后会报错.
    • Ø cache n|nocache, 表示高速缓存, 可以优化序列, 缓存的默认值是20. nocache表示没有缓存.

    b) 创建学生序列

    create sequence seq_student;

    三、 序列的使用

    3.1 nextval(序列的下一个值)

    查看序列的下一个值

    select seq_student.nextval from dual;

    3.2 currval(序列的当前值)

    查看序列的当前值

    select seq_student.currval from dual;

    3.3 在插入数据时使用序列

    insert into student values (seq_student.nextval, '小红', '女', 19, sysdate, 'hong@sxt.com', 102);

    四、 删除序列

    drop sequence seq_student;

    五、 修改序列:alter sequence xxxx

    1 alter sequence student_id -- 序列名 也可以更改
    2 minvalue 1   
    3 maxvalue 99999  
    4 start with 1   
    5 increment by 1  
    6 cycle    -- 到99999后,从头开始
    7 nocache;

    注:

      1、如果想要改变start的值,必须 drop  sequence 再重建一个序列

      2、如果想要改变minvalue的值,必须删除序列后再重新建立序列化。不可以修改序列化的minvalue。

  • 相关阅读:
    centos下 yum安装ngix
    [转]ORACLE函数大全
    Oracle的DML语言必备基础知识
    微信公众账号开发教程
    freemarker页面如何获取绝对路径basePath
    使用intellij的svn时提示出错: Can't use Subversion command line client: svn.Errors found while svn working copies detection.
    网站地址
    如何让tomcat不记录catalina.out这个日志文件
    在centos6.7用yum安装redis解决办法
    剑指 Offer 06. 从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12784678.html
Copyright © 2020-2023  润新知