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;