oracle序列相关

oracle序列相关,第1张

概述一. oracle中如何实现一列的规律增长呢(通常是指number类型的列)?    这就需要借助序列来实现了;   1. 什么是序列? 可以理解为序列是一组sql语法创建出来的函数, 该函数中定义       好了返回值的规则, 每次调用都会在上一次的返回值基础上在产生一个符合规则      的结果.(类似于python中的生成器).   2. 创建序列的语法(把定义的序列起名为seq1):  

一. oracle中如何实现一列的规律增长呢(通常是指number类型的列)? 

  这就需要借助序列来实现了;

  1. 什么是序列? 可以理解为序列是一组sql语法创建出来的函数,该函数中定义

      好了返回值的规则,每次调用都会在上一次的返回值基础上在产生一个符合规则

     的结果.(类似于python中的生成器).

  2. 创建序列的语法(把定义的序列起名为seq1):

    create sequence seq1

    start with 1         # 设定从1开始生成

    increment by 1  # 设定步长为1

    minvalue 1        # 设定最小值为1

    maxvalue 100   # 设定最大值,即最大到100

    cycle                 # 设定到100后循环从1开始,如不想循环则用nocycle

    nocache;          # 不使用缓存,  或用: cache 10来指定一次缓存几个值

    如指定cache 10,其会一次生成10个值放入内存,再nextval时直接到内存中拿,而不用再调用

    序列生成,等10个用完后才会调用序列再生成10个. 优点是效率高,缺点时数据库异常时,这些放

    到内存中的值会丢失. 即所谓的跳号现象.

  3.序列创建后是全局的,可被任一用户直接使用,序列的返回值是不会因为不同用户而不同.

    select seq1.nextval from dual;  # 从序列中取值

    select seq1.currval from dual;  # 查看当前序列的值

    注意,序列在定义后,必须先nextval再currval,否则会报错

总结

以上是内存溢出为你收集整理的oracle序列相关全部内容,希望文章能够帮你解决oracle序列相关所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1157898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存