zoukankan      html  css  js  c++  java
  • 序列

    序列

    -- sequence 序列
    -- 序列是数据库的一种对象,用于生成一串不重复的编号,可以递增或递减
    作用:
    可以为表中列自动产生值
    由用户创建数据库对象来创建序列(sequence),并且可以由多个用户共享
    一般用在主键或者唯一列

    1.创建序列:
    语法:
    create sequence 序列名称
    start with 开始数字 默认是1
    increment by 增长数字 默认是1
    minvalue 最小值 默认是1
    maxvalue 最大值 默认是1
    cache 批量生成多少个序号,使用完后再生成一批,用于序列的创建优化,默认是20

    例子:
    create sequence myseq --创建序列名
    start with 1 --从1开始
    increment by 1 --每次增长1
    maxvalue 999999 --最大值 //nomaxvalue(不设置最大值)
    minvalue 1 --最小值
    cycle --循环 //nocycle(一直累加,不循环)
    nocache --不使用缓存
    解释:从1开始,每次增长1,最大值999999,之后循环从1开始。

    2.使用序列
    -- 序列在使用时,可以使用序列的两个伪列: CURRVAL -取得序列的当前值,NEXTVAL - 获取序列的下一个值
    -- 序列创建后CURRVAL是没有值的,必须先使用NEXTVAL获取下一值,这是序列才会生产一批值

    create table test(id number primary key,name varchar2(32));
    insert into test values(myseq.nextval,'abc');
    insert into test values(myseq.nextval,'ddd');

    特别说明:
    1、myseq:表示序列的名字,nextval:关键字,表示从序列中取下一个值。
    2、sequence序列是需要配合number类型的列来使用;
    3、sequence序列是要在主键或unique列上使用的。

    3. 删除序列
    DROP SEQUENCE SEQ_TEST;

  • 相关阅读:
    cf B. Sereja and Suffixes
    cf E. Dima and Magic Guitar
    cf D. Dima and Trap Graph
    cf C. Dima and Salad
    最短路径问题(floyd)
    Drainage Ditches(网络流(EK算法))
    图结构练习—BFSDFS—判断可达性(BFS)
    Sorting It All Out(拓扑排序)
    Power Network(最大流(EK算法))
    Labeling Balls(拓扑)
  • 原文地址:https://www.cnblogs.com/xiaomingit/p/11252907.html
Copyright © 2011-2022 走看看