• Oracle中sequence(序列)详解


    sequence是Oracle中的序列,可以实现字段的自增或自减效果

    Oracle与MySQL、SQL server不同,没有直接实现字段自增的功能,需要我们使用自增序列去实现

    如:

    1. --设置自增序列,名称为"seq_userinfo",名字任意命名
    2. create sequence seq_userinfo
    3. increment by 1 --每次+1
    4. start with 1 --从1开始
    5. nomaxvalue --不限最大值
    6. nominvalue --不限最小值
    7. cache 20; --设置取值缓存数为20

    1、create sequence seq_userinfo

    sequence :为关键字,表示"序列"

    seq_userinfo:为序列的名称,我们可以任意命名(注意符合命名规范即可)

    2、increment  by  1

    increment  :表示自增

    by 1:表示每次变动1个整数单位

    3、start with 1

    表示从1开始

    start with 200 :表示从200开始自增

    4、nomaxvalue

    表示不限制最大值,我们也可以手动设置最大值,如:

    maxvalue  99999999999   --最大值为99999999999   

     5、nominvallue

    表示不限制最小值

     6、cache  20

    这个值特别重要

    Oracle默认cache=20

    cache的作用:当设置cache=20,第一次新增时,会往Oracle服务器的缓存中,存储20个整数值,例如,我们第一次新增是从1开始,就会把1到20这个20个数字存储到Oracle缓存中,当下一次新增时,直接从缓存中获取数字

    优点:提高了insert时的效率,这里的cache效果与Java中的连接池效果是一致的!

    缺点:Oracle服务器会存在不确定因素,从而导致缓存被刷新,从而导致cache还没使用完,cache就失效了,不能保证自增序列的连续性

    说白了就是:缓存中存储1到20个数字,用到10的时候,这一次的cache就被刷新失效了,下一次再新增时,会重新设置缓存(从21开始,再拿20个数字),从而导致自增的序列出现数字不连续的情况

    在后端系统中,一般是不需要保证自增序列的连续性的,因此,设置cache值是必要的

  • 相关阅读:
    16.linux应用实现控制led
    C++比Python快50倍?如何让C++和Python优势互补?(BoostPython)
    SQL注入漏洞解析-less-8(布尔盲注)
    Facebook广告投放技巧
    初识OpenGL (4)链接着色器
    攻防世界1-misc
    迈向未来:Web3 技术开发的无限可能
    【学习笔记】Servlet
    零束科技打通智驾全域数据闭环,加速智驾场景规模化量产落地!
    GameFrameWork框架(Unity3D)使用笔记(五)游戏主流程ProcedureMain
  • 原文地址:https://blog.csdn.net/weixin_42675423/article/details/127101723