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, 这就解释了为什么判断存在时候名字区分大小写了
来源: http://www.bubuko.com/infodetail-3337701.html