Oracle序列
序列用途
序列:Oracle提供用于产生一系列唯一数字的数据库对象。
1. 自动提供唯一的数值
2. 共享对象
3. 主要用于提供主键值
4. 把序列值装入内存可以提高数据的访问效率
序列创建
创建序列需要权限:创建序列的权限 create sequence 或 createany sequence
--创建序列的语法-- create sequence sequence_name --递增的序列值是n,如果n是正数就递增,如果是负数就递减,默认是1不可为0 [increment by n] --开始的值,递增默认是minvalue递减是maxvalue [start with n] --最大值 [max value n|no max value] --最小值 [min value n|no min value] --循环、不循环 [{cycle |nocycle}] --分配并存入到内存中 [{cache |nocache}]
--实际案例使用-- --创建表 create table mySqe( s_idnumber(6), s_namevarchar2(30), constraint pk_id primarykey(id) ); --创建序列 create sequence seq_mySqe increment by 1 start with1 max value9999 min value1 no cycle no cache --把序列放入表中 insert into mySqe values(seq_mySqe,"fe"); |
序列修改
注意:
1. 必须是序列的拥有者或者对序列有alter权限
2. 修改序列只会影响后面的序列值,不影响已经使用的序列值
3. 改变序列的初始值只能是删除序列后重新创建的
--修改序列的语法-- alter sequence sequence_name --递增的序列值是n,如果n是正数就递增,如果是负数就递减,默认是1不可为0 [increment by n] --开始的值,递增默认是minvalue递减是maxvalue [start with n] --最大值 [max value n|no max value] --最小值 [min value n|no min value] --循环、不循环 [{cycle |nocycle}] --分配并存入到内存中 [{cache |nocache}] |
删除序列
序列被删除后不能再被引用
--删除序列语法-- drop sequence sequence_name |