序列(Sequences)
Oracle序列是一个连续的数字生成器。序列常用于人为的关键字,或给数据行排序否则数据行是无序的。像约束一样,序列只存在于数据字典中。序列号可以被设置为上升、下降,可以没有限制或重复使用直到一个限制值。创建序列使用SET SEQUENCE语句。
CREATE SEQUENCE [schema] sequence KEYWORD
KEYWORD包括下面的值:
KEYWORD | 描述 |
START WITH | 定义序列生成的第一个数字,缺省为1 |
INCREMENT BY | 定义序列号是上升还是下降,对于一个降序的序列INCREMENT BY为负值 |
MINVALUE | 定义序列可以生成的最小值,这是降序序列中的限制值。缺省情况下该值为NOMINVALUE,NOMINVALUE,对于升序为1,对于降序为-10E26. |
MAXVALUE | 序列能生成的最大数字。这是升序序列中的限制值,缺省的MAXVALUE为NOMAXVALUE,NOMAXVALUE,对于升序为10E26,对于降序为-1。 |
CYCLE | 设置序列值在达到限制值以后可以重复 |
NOCYCLE | 设置序列值在达到限制值以后不能重复,这是缺省设置。当试图产生MAXVALUE+1的值时,将会产生一个异常 |
CACHE | 定义序列值占据的内存块的大小,缺省值为20 |
NOCACHE | 在每次序列号产生时强制数据字典更新,保证在序列值之间没有间隔当创建序列时,START WITH值必须等于或大于MINVALUE。 |
删除序列使用DROP SEQUENCE语句
DROP SEQUENCE sequence_name