DB2 SEQUENCE 序列相关阐明ITeye - 凯时娱乐

DB2 SEQUENCE 序列相关阐明ITeye

2019-01-11 19:57:27 | 作者: 曜栋 | 标签: 序列,修正,指定 | 浏览: 2502

1、序列是依照必定的规矩出产的数值,序列的效果十分的大,比方银行买卖中的流水号,便是记载每笔买卖的要害字段。

 (1)创立SEQUENCE的时分,最好不要加双引号,比方:

db2 == CREATE SEQUENCE "seq_test" ...

应该改为:

db2 == CREATE SEQUENCE seq_test ...

加了双引号,表明巨细写灵敏,假如你运用以下句子去查找序列的话,则会报错:

db2 == select (nextval for seq_test) from sysibm.sysdummy1;

SQL0204N  "XXX.SEQ_TEST" is an undefined name.  SQLSTATE=42704

2. 创立SEQUENCE

经过create sequence句子创立序列,详细语法如下:
CREATE    SEQUENCE  sequence-name--·-----------
           -OR REPLACE-                               
   .-AS INTEGER--------.                                        
--+-------------------+--·--+------------------------------+---
   -AS--| data-type |-     -START WITH--numeric-constant-   

      .-INCREMENT BY 1-----------------.      
--·--+--------------------------------+--·---------------------
      -INCREMENT BY--numeric-constant-      

   .-NO MINVALUE----------------.      
--+----------------------------+--·----------------------------
   -MINVALUE--numeric-constant-      

   .-NO MAXVALUE----------------.     .-NO CYCLE-.      
--+----------------------------+--·--+----------+--·-----------
   -MAXVALUE--numeric-constant-     -CYCLE----      

   .-CACHE 20----------------.     .-NO ORDER-.      
--+-------------------------+--·--+----------+--·-------------
   +-CACHE--integer-constant-+     -ORDER----      
   -NO CACHE---------------- 
简化写如下:
create sequence seq_name
start with a
increment by b
minvalue c
maxvalue d
no cycle
cache e
order
参数简介如下:
or replace:若有创立序列重名的序列,那么将会被代替(先删去,再创立)
as datatype:指定数据类型,这儿阐明下,序列的数据类型只能为数值型,
            如,smallint,integer,bigint,不带小数点的decimal类型。
start with:指定序列的起始值,默许状况下,关于升序的序列是当时指定数据类型的最小值,
            关于降序序列的是当时指定类型的最大值。
increment by:指定增加的值,默许值为1,正数表明此序列为增加升序的,负数表明此序列为降序的。
minvalue:最小值,若降序序列,no cycle的话,到此值的时分就不再生成序列值了;
no minvalue:关于升序序列来说,此值为start with的值,假如start with值未指定的话便是1.
             关于降序序列来说,此值便是指定数据类型的最小值。
maxvalue:指定出产序列的最大值,
no maxvalue:关于升序序列来说,此值为指定数据类型的最大值;
             关于降序序列来说,此值为start with值,若未指定start with值的话便是-1.
cycle:循环运用数据值,关于升序序列来说,当到达了最大值之后,下一个值将会是其最小值;
       关于降序序列来说,到达最小之后,下一个序列值为其最大值。
no cycle:当到达序列的鸿沟值之后,就不再发生序列值,默许选项。
cache:缓存序列值,表明每次运用此序列的时分,预先出产并存放在内存中的序列值。
       其效果是有用的降低了写日志的I/O操作。
       若在运用的过程中,呈现体系过错的话,那么一切这些缓存值将会丢掉。
       最小值为2,默许为20
no cache:当指定此选项的时分,内存中不会存储任何序列值,不管呈现什么异常现象都不会影响到此序列,
          每次生计新的序列值,都会导致写日志的I/O操作。
order:依照恳求的次序生成值。
no order:不会依照恳求的次序生成值,默许状况


下面创立一个序列seq_001:
create sequence seq_001 
start with 1 
increment by 1 
no maxvalue 
no cycle 
cache 21
DB20000I  SQL 指令成功完结。

3、序列设置开端值
 DB2:ALTER SEQUENCE 序列名  RESTART WITH 下一值

4、修正 
 修正最大值:   ALTER SEQUENCE sequence_name MAX VALUE numeric-constant | NO MAXVALUE 
 修正最小值:   ALTER SEQUENCE sequence_name MIN VALUE numeric-constant | NO MINVALUE (此值需要比当时值小) 
 修正步长:    ALTER SEQUENCE sequence_name INCREMENT BY numeric-constant
 修正CACHE值: ALTER SEQUENCE sequence_name CACHE numeric-constant | NO CACHE 
 修正循环特点: ALTER SEQUENCE sequence_name CYCLE | NO CYCLE
 修正排序特点:ALTER SEQUENCE sequence_name ORDER | NO ORDER
 重新计数:    ALTER SEQUENCE sequence_name RESTART | RESTART WITH numeric-constant
能够修正的特点如下:
(1)序列其实值(或重置)
(2)increment值
(3)最大最小值
(4)cache值
(5)当到达鸿沟值的时分,是否循环发生序列值
(6)是否依照恳求次序发生序列值
留意:
(1)序列的数据类型不能修正,若要修正,只能删去当时序列,重建时指定想要的数据类型。
(2)当修正的时分,一切的缓存值将会丢掉。
(3)当将序列修正为cycle之后,序列将会发生重复的值。

5、删去SEQUENCE

    DROP SEQUENCE sequence_name

6、查询SEQUENCE

select SEQNAME,"INCREMENT", "START","MAXVALUE","MINVALUE","CYCLE","CACHE","ORDER"  from sysibm.syssequences where seqname=XXX --巨细写灵敏的,请和界说相同

能够查询sequence 的信息, 比方:称号 步长 开端值 最大值 最小值 是否循环 缓存值巨细 是否排序 等信息

  (1) 查询SEQUENCE 下一个值

   nextval for SEQUENCE称号

   假如想直接检查 ,能够运用 values() ,比方 values( nextval for SEQUENCE称号)

  (2) 查询SEQUENCE当时值

     prevval for SEQUENCE称号

留意:  nextval  和 prevval 能够运用在select,values,insert,和update句子中,不能运用在where句子中

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯时娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    oracle 树立索引的准则ITeye

    索引,树立,复合
  • 2
  • 3
  • 4
  • 5

    PostgresSQLITeye

    运用,一个,索引
  • 6
  • 7

    Oracle 数据库用户办理ITeye

    用户,权限,数据库
  • 8
  • 9

    mysql的字符串函数ITeye

    字符串,函数,字符
  • 10