sequence操作
所谓序列对象,用来管理数据库的唯一性值,通常为表的主键服务,序列可以服务一张或者多张表,且序列值可以缓存一定的数量。
创建基本语法:
create sequence s_name
[increment by n]:步长
[start with n]:开始值
[maxvalue n|NOMAXVALUE]:最大值 10
[minvalue n|NOMINVALUE]:最小值 1
[cycle|NOCYCLE]:是否循环,建议不使用
[cache n|NOCACHE]:缓存
例:create sequence my_seq
increment by 2
start with 0
maxvalue 20
minvalue -4
cycle
cache 3;
序列中方法:
//方法一:获取下一个值
select my_seq.nextval
from dual;
//方法二:获取当前的序列值
select my_seq.currval
from dual;
注意:第一次使用的一定是nextval。
※ 一般 结合插入语句insert使用
create table my(
id munber primary key,
name varcher2(10)
);
create sequence my_s;
//注意:默认每次增加(步长)1,开始值为1,
//没有最大值和最小值
//不循环不缓存
insert into my values(my_s.nextval,'');
※ 修改序列alter
基本语法:
alter sequence s_seq
[increment by n]
[maxvalue n|NOMAXVALUE]
[minvalue n|NOMINVALUE]
[cycle|NOCYCLE]
[cache n|NOCACHE]
注意:不能修改start with
例:
alter sequence my_s
increment by 2
cache 4;
insert into my_s values(my_s.nextval,'');
※ 删除sequence
drop sequence sequence_name
查看单前用户的sequence:
select sequence_name
from user_sequences;