zoukankan      html  css  js  c++  java
  • Oracle--序列

    序列

      Oracle中在增加一条数据时,为了实现自增长,需要使用序列。

    创建数字, 应用在 id列, 这一列,是数字, 唯一的, 使用序列来产生,不需要人工添加,  后一个值 是在前一个值的基础上加增量(默认1)

    创建序列:

    create sequence 序列名
            [INCREMENT BY n]            //每次增长值, 默认加1
             [START WITH n]                //起始值  默认从1
            [{MAXVALUE n| NOMAXVALUE}]        //最大值  
            [{MINVALUE n| NOMINVALUE}]        //最小值  默认1

    例:

    create sequence myseq
         minvalue 1
         maxvalue 1000
         start with 1
         increment by 1
         cache 20;
    
    -- 一般直接创建
    create sequence  seq_stuno;

    序列的使用:

    1.nextval ,让序列产生一个数值

    --序列的属性:  获取下一个值  nextval   序列名.nextval;
    -- 每调用一次, 这个序列产生一个数字, 下一个数字是在前一个数字的基础+ 1
    select seq_stuno.nextval from dual;
    
    --在表插入数据的时候,给id列赋值 
    insert into tb_student values(seq_stuno.nextval,'李四',1);

    2. currval当前正在使用的序列值(不会让序列产生值),必须在序列使用(nextval)之后才有

    --查看当前产生的值  currval 属性, 不能产生值, 只是查看当前序列产生的值
    select  seq_stuno.currval from dual;

    3.删除序列,删除序列不会删除序列已产生的值

    drop sequence myseq;
    --经验: 一个序列可以被多张表一起使用,id值不会连续,
    -- ***推荐每一张表都有自己的序列  ***
    insert into tb_class values(seq_stuno.nextval,'二年级一班');
    create sequence seq_cid  START WITH 8  ;
    select seq_cid.nextval from dual;
  • 相关阅读:
    Corn Fields 状压动归入门题
    codevs 2800 送外卖 floyd + Tsp
    互不侵犯 状压动归入门题
    跨终端电商平台的实现之手势效果(左右滑动)
    nodejs和树莓派开发以及点亮RGB的LED灯代码
    基于vue-cli搭了一个多页面应用的空脚手架
    About HTML
    【译】遗留浏览器中的表单
    Vue2的右键弹出菜单(vue-contextmenu)
    IMWEB 前端面试题汇总
  • 原文地址:https://www.cnblogs.com/64Byte/p/12747044.html
Copyright © 2011-2022 走看看