zoukankan      html  css  js  c++  java
  • oracle序列相关

    一. 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, 否则会报错

  • 相关阅读:
    面向对象(二)
    关于CURL的初步认识
    Mysql数据库进阶之(分表分库,主从分离)
    解决mysql:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
    git的那些事
    今天我们来聊聊svn的使用
    基于CentOS6.8版本配置真实域名的方法
    WDCP v3 安装
    Ubuntu无法ssh远程连接问题 (转)
    Linux运维入门到高级全套系列PDF
  • 原文地址:https://www.cnblogs.com/quzq/p/11334857.html
Copyright © 2011-2022 走看看