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语句中

DB2 SEQUENCE笔记相关推荐

  1. db2 SEQUENCE

    db2 SEQUENCE 1.create              CREATE SEQUENCE <sequence-name>                AS data-type ...

  2. IBM DB2 学习笔记:关系模型、基本概念、数据库实例基本操作、数据库对象

    文章目录 1. 关系数据模型 1.1 什么是数据? 1.2 为什么使用数据库? 1.3 数据库管理系统(DBMS) 1.4 数据模型 1.5 关系数据模型 1.6 关系数据库 1.6.1 表 1.6. ...

  3. DB2 sequence 获取下一个值

    select next value for SEQ_AS_ORG as SEQ from Sysibm.sysdummy1 values nextval for SEQ_AS_ORG

  4. DB2 UDB V8.1 管理 学习笔记

    DB2 UDB V8.1 管理 学习笔记 DB2 学习笔记 - AIview.com Last updated on Wednesday, August 24, 2005 Skip to naviga ...

  5. Hibernate配置(2)

    一.Hibernate.cfg.xml 主配置(主要包括:数据库连接信息.其他参数.映射信息) 1.常用配置查看源码: hibernate-distribution-3.6.0.Final\proje ...

  6. Hibernate入门这一篇就够了

    前言 本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了! 什么是Hibernate框架? Hibernate是一种ORM框架,全 ...

  7. Hibernate框架 主配置文件 Hibernate.cfg.xml 映射配置 说明

    1 主配置文件 Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final ...

  8. hibernate理解

    SSH框架: Struts框架, 基于mvc模式的应用层框架技术! Hibernate,基于持久层的框架(数据访问层使用)! Spring,创建对象处理对象的依赖关系以及框架整合! Dao代码,如何编 ...

  9. 【Hibernate】

    目录 Hibernate与ORM的关系是什么? Hibernate执行流程 搭建一个Hibernate环境,步骤如下: dao层保存一个对象示例 Hibernate主配置文件 Hibernate映射配 ...

最新文章

  1. 使用man在线手册页
  2. Ubuntu 用vsftpd 配置FTP服务器
  3. 屏幕滚动控件Scrollview
  4. boost::hana::drop_while用法的测试程序
  5. Boost: 检查underlying_type特性是否有效的测试程序
  6. javafx 自定义控件_JavaFX技巧10:自定义复合控件
  7. python实现嵌套功能_python3 os进行嵌套操作的实例讲解
  8. 新装的电脑执行maven install命令一直报Could not find artifact jdk.tools:jdk.tools:jar:1.7
  9. opencv Python 图片颜色识别
  10. openwrt使用tayga/totd实现NAT64/DNS64
  11. 如何在苹果手机上进行自动化测试!!!!!可以尝试配置一下
  12. ftp服务器命令移动文件,ftp服务器命令移动文件命令
  13. 字符集和字符集编码详解
  14. JQuery广告(新闻)浮动(漂浮)框
  15. 更快更强!华为大数据新版本让Hive提速50%!
  16. 解决删除凭据管理器后仍然可以访问问题
  17. 正则表达式和re模块
  18. 键盘移动小div(js原生)
  19. 猿编程python代码_程序猿编程课堂 Python学习之入门篇3:简单的数据类型
  20. **惠普GK100机械键盘设置**

热门文章

  1. 运行自定义映像。linux,安装和使用virt-customize自定义Qcow2/Raw Linux OS磁盘映像
  2. linux怎么修改ens33文件,linux 修改centos7的网卡ens33修改为eth0
  3. CSS 伪类和伪元素以及权重比较
  4. mysql建库需要注意_MySQL 建库、建用户及建表事项
  5. python爬虫:使用selenium、unittest和BeautifulSoup爬取斗鱼tv的当前直播人数
  6. Ubuntu/linux下最强大的下载工具-aria2
  7. 02采集器Categraf
  8. Echarts实现X轴拖动显示效果
  9. 等保2.0.2021版等级测评报告模板修订总结
  10. 失败了,让我们共同买单