首页 > 代码库 > oracle_sequence用法
oracle_sequence用法
1. About Sequences(关于序列)
序列是数据库对象一种。多个用户可以通过序列生成连续的数字以此来实现主键字段的自动、唯一增长,并且一个序列可为多列、多表同时使用。序列消除了串行化并且提高了应用程序一致性。
2. Creating Sequences(创建序列)
前提:Prerequisites
在自己模式下创建序列需要create sequence权限
在其他用户模式下创建序列需要create any sequence权限
语法:Syntax
create sequence seq_sequenceName
increment by: 指定序列增长步长,可以为正(升序)、负整数(降序),但不能为0
start with:指定序列起始数,默认为序列最小值
maxvalue:指定序列最大值
nomaxvalue:无最大值(default)
minvalue:指定序列最小值
nominvalue:无最小值(default)
cycle:指定序列达到最大值或最小值后继续从头开始生成
nocycle:不循环生成(default)
cache:指定数据库内存中预分配的序列值个数,以便快速获取,最小cache值为2
例子:
SQL> create sequence seq_common
increment by 2
start with 5;
3. ALTER SEQUENCE(修改序列)
前提:Prerequisites
修改自己模式序列需要alter object权限
修改其他模式序列需要alter any sequence权限
语法:Syntax
alter sequence seq_sequenceName
1)如果想以不同的数字重新开始序列,必须删除重建
2)修改的maxvalue必须大于序列当前值
例子:
SQL> alter sequence seq_common
maxvalue 100;
SQL> alter sequence seq_common
cache 3;
4. DROP SEQUENCE(删除序列)
前提:Prerequisites
删除序列必须要有drop any sequence权限
语法:Syntax
drop sequence seq_sequenceName
例子:
SQL> drop sequence seq_common;
oracle_sequence用法