• 【Oracle】【37】SEQUENCE 自增长 序列化


    前言:

    在项目中有时我们会需要让某个字段自增长,如果每次都从数据库读出来之后,再加上固定的值,一是比较麻烦,二是可能有个时间差导致数据不准确。所以可以在数据库定义SEQUENCE

    正文:

    1,创建

    CREATE SEQUENCE seqTest
    INCREMENT BY 1 -- 每次加几个
    START WITH 1 -- 从1开始计数
    NOMAXvalue -- 不设置最大值
    NOCYCLE -- 一直累加,不循环
    CACHE 10; --设置缓存cache个序列,这样取得快一点。但如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为NOCACHE

    2,使用

    seqtest.currval:返回当前值。在第一次nextval初始化后才能使用,否则会报错

    seqtest.nextval:增加,并返回增加后的值

    insert into table_name(id, name)values(seqTest.Nextval, 'sequence 插入测试');

    3,更改参数

    拥有ALTER ANY SEQUENCE权限才能改动sequence;除start以外的所有参数都可以修改;如果想要改变start值,必须drop sequence再re-create(删除再重新创建)。

    alter sequence seqTest maxvalue 9999999;

    4,删除

    DROP SEQUENCE seqTest; 

    参考博客:

    ORACLE SEQUENCE用法 - 猥琐丶欲为 - 博客园
    https://www.cnblogs.com/hyzhou/archive/2012/04/12/2444158.html

  • 相关阅读:
    ! JOISC2020DAY2变色龙之恋
    ! JOISC2020DAY1扫除
    JOISC2020DAY1汉堡肉
    JOISC2020DAY1建筑装饰4
    ! JLOI/SHOI2016随机序列
    JLOI/SHOI2016黑暗前的幻想乡
    ! JLOI/SHOI2016成绩比较
    JLOI/SHOI2016方
    JLOI/SHOI2016侦查守卫
    ! AHOI/HNOI2017抛硬币
  • 原文地址:https://www.cnblogs.com/huashengweilong/p/11362443.html
Copyright © 2020-2023  润新知