项目需要生成一组连续的流水号,并且该流水号隔天重置,使用DB2序列实现,DB2版本7.1.2
CREATE SEQUENCE <sequence-name>
 


 AS data-type   默认 As Integer 



 START WITH <numeric-constant>   



 INCREMENT BY <numeric-constant>               默认 INCREMENT BY 1 



 MINVALUE <numeric-constant> | NO MINVALUE    默认 NO MINVALUE 



 MAXVALUE <numeric-constant> | NO MAXVALUE    默认 NO MAXVALUE 



 NO CYCLE | CYCLE                             默认 NO CYCLE 



 CACHE <numeric-constant> | NO CACHE          默认 CACHE 20 



 NO ORDER | ORDER                             默认 NO 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:不会按照请求的顺序生成值,默认情况。 



 序列取值: 



 下一个值:VALUES NEXTVAL FOR 序列 或 VALUES NEXT VALUE FOR 序列 



 当前值: VALUES PREVIOUS VALUE FOR 序列  或 VALUES PREVVAL FOR 序列 



 序列设置开始值:ALTER SEQUENCE 序列名  RESTART WITH 下一值(隔天重置序列值,建立定时任务,每天00:00执行重置序列初始值任务)) 



 修改最大值    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> 



 DROP SEQUENCE <sequence_name>; 删除序列