ORACLE的sequence (序列)

ORACLE的sequence (序列)

格式:

CREATE SEQUENCE sequence_name  
  START WITH start_value [INCREMENT BY increment_value]   -- 开始值 步进值
  [MINVALUE min_value]   -- 最小值 最小值不得大于开始值
  [MAXVALUE max_value]   -- 最大值
  [CYCLE][NOCYCLE]       -- 循环 不循环(默认)
  [ORDER][NOORDER]       -- 设置序列不保证生成的值的顺序。
  [(CACHE n | NOCACHE)]; -- 缓存(默认且20) | 不缓存            

例如

以下语句创建了一个名为seq_id的序列,起始值为100,递增量为10,最大值为200,并设置了循环、无序和缓存大小为10

CREATE SEQUENCE seq_id  
  START WITH 100 INCREMENT BY 10 MINVALUE 50 MAXVALUE 200 CYCLE NOORDER CACHE 10;

修改

格式

ALTER SEQUENCE 'SEQ_NAME' ....
ALTER SEQUENCE SET_TEST2 MAXVALUE 301 ;

PS: 不能修改 start with

删除

DROP SEQUENCE  "SEQ_NAME";

关于CACHE说明

当序列中有了minvalue且设置了循环时,maxvalue的值应该在原本的基础上至少加1,由于cache它是默认从内存中提取N个数(默认20)。
CREATE    SEQUENCE   SET_TEST2
MAXVALUE 200
start with 10
minvalue 10
increment by 10
cycle
; --  会提示 number to CACHE must be less than one cycle 此时只需要更改 MAXVALUE为201 即可

你可能感兴趣的:(oracle,数据库)