Oracle 创建 Sequence

创建 Sequence

在自己模式下创建序列须要create sequence权限
在其它用户模式下创建序列须要create any sequence权限

-- 在自己模式下创建序列
create sequence nbudata.seq_dummy_apply_bar_code_00
minvalue 1
maxvalue 9999999999999999
start with 1
increment by 1
cache 30
cycle;

-- 赋权
grant select on nbudata.seq_dummy_apply_bar_code_00 to nbucde;
语义Semantics:
INCREMENT BY:指定序列增长步长。能够为正(升序)、负整数(降序)。但不能为0。最高精度28。
START WITH: 指定序列起始数。默觉得序列最小值。
MAXVALUE :指定序列最大值。最大28位。必须大于等于起始值且大于等于序列最小值。
NOMAXVALUE:  无最大值(实际为10^27或-1)。default
MINVALUE :指定序列最小值。
NOMINVALUE  :无最小值(实际为1或-10^26)。Default
CYCLE  :指定序列达到最大值或最小值后继续从头開始生成。
NOCYCLE :不循环生成。Default.
CACHE :指定数据库内存中预分配的序列值个数,以便高速获取。最小cache值为2。
Cache參数最大值为:(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)

注意1:假设系统发生问题。全部缓存的没有被DML语句使用并提交的序列值将丢失。潜在丢失值数量等于cache的数量。
NOCACHE  :不指定缓存数,默认缓存20
ORDER :指定order条件保证序列按请求顺序生成。
此条件适用于RAC环境。
NOORDER :不保证序列按请求顺序生成。

使用 Sequence

SELECT  nbudata.seq_dummy_apply_bar_code_00.nextval FROM dual;

删除 Sequence

DROP SEQUENCE nbudata.seq_dummy_apply_bar_code_00;