1、创建序列:
create sequence seq_xx --创建序列名称
increment by 1 --增长幅度
start with 1 --初始值
maxvalue 9999999999999999; --最大值
2、查询序列:
select seq_xx.nextval from dual;
--或者select seq_xx.nextval from sys.dual;
每查询一次,序列按自定义增长;
3、删除序列:
DROP SEQUENCE seq_xx;
4、判断序列是否存在,存在则删除:
有些情况下使用不合理,删除已有序列,再新建同名序列之后,重新使用该规则,可能会对已使用该序列数据造成影响。
declare
V_NUM number;
BEGIN
----多次删除时,每次都将v_num设置成为0
V_NUM := 0;
----判断序列 seq_name_1 是否存在(区分大小写)
select count(0) into V_NUM from user_sequences where sequence_name = 'SEQ_XX';
----如果存在立即删除
if V_NUM > 0 then
execute immediate 'DROP SEQUENCE SEQ_XX'';
end if;
END;
/
加了“/”之后,可以在后面接其他的SQL语句;
5、查询序列大小写问题
select * from user_sequences; --查找用户建的序列
我们发现字段SEQUENCE_NAME的值里面有刚才创建的SEQ_XX,这就解释了为什么判断存在时候名字区分大小写了