说明:
ORACLE中一般将自增sequence重置时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译。
不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequence的nextval,记住,把递增改为负的这个值(反过来走),然后再改回来。
有的时候我们需要定期重置序列,比如每天或者每个月的开始都从一个指定的值开始。
可以写个存储过程,以下是完整的存储过程,然后调用传参,并创建定时任务定期重置。

以下代码仅供参考:

创建测试序列

create sequence seq_test increment by 1 start with 1000 nomaxvalue nocycle nocache;

多执行几次,增加序列的值

select seq_test.nextval from dual;

创建重置序列的存储过程
create or replace procedure seq_reset(seq_name varchar2)  asv_num       number(10);v_start_num number(10) := 1000; --序列起始值(自定义)v_step_num  number(10) := 1; --序列步长v_sql       varchar2(200);v_seq       varchar2(200); --序列名
beginv_seq:= seq_name;execute immediate 'select ' || v_seq || '.nextval from dual' into v_num;v_num := v_start_num - v_num - v_step_num-1; --将步长改为负数v_sql := 'alter sequence ' || v_seq || ' increment by ' || v_num;execute immediate v_sql;execute immediate 'select ' || v_seq || '.nextval from dual' into v_num; --将序列起始值重置为指定的值v_sql := 'alter sequence ' || v_seq || ' increment by ' || v_step_num;execute immediate v_sql;execute immediate 'select ' || v_seq || '.nextval from dual' into v_num;
end;
重置序列
beginseq_reset('seq_test');
end;
创建定时任务,定时重置序列(自定义)

create job …

ORACLE 序列重置相关推荐

  1. oracle序列重置6,oracle 重置序列从指定数字开始的方法详解

    重置oracle序列从指定数字开始 复制代码 代码如下: declare n number(10); v_startnum number(10):=10000001;--从多少开始 v_step nu ...

  2. 基于ruoyi+vue+elementUI实现列表,新增,附件上传,tab+springBoot+mybatis+oracle序列+批量新增

    基于ruoyi+vue+elementUI实现列表,新增,附件上传,tab+springBoot+mybatis+oracle序列+批量新增 页面效果 列表页面 新增页面 详情页面 代码实现 列表+新 ...

  3. Oracle 序列的创建和使用

    Oracle 序列的创建和使用 创建序列 create sequence seq_a minvalue 1000 maxvalue 99999999 start with 1000 increment ...

  4. Oracle序列使用:建立、删除

    在开始讲解Oracle序列使用方法之前,先加一点关于Oracle client sqlplus的使用,就是如果执行多行语句的话一定要加"/"才能表示结束,并执行!本篇文章的主题是通 ...

  5. Oracle序列的建立以及使用

    Oracle序列的说明: 序列是一数据库对象,利用它可生成唯一的整数.一般使用序列自动地生成主码值.一个序列的值是由特别的Oracle程序自动生成,因而序列避免了在运用层实现序列而引起的性能瓶颈.Or ...

  6. oracle+创建序列自增,oracle序列详解和建立自增主键

    序列: 是oacle提供的用于产生一系列惟一数字的数据库对象.sql l 自动提供惟一的数值数据库 l 共享对象性能 l 主要用于提供主键值测试 l 将序列值装入内存能够提升访问效率spa 1.首先建 ...

  7. oracle索引和同义词,关于Oracle序列、索引、同义词

    简单记录下Oracle序列.索引.同义词的相关知识. 一.常见的数据库对象 二.序列 序列: 可供多个用户用来产生唯一数值的数据库对象 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内 ...

  8. Oracle序列小结

    定义: 序列是一个计数器(序列号生成器),可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字),是oracle提供的用于产生一系列唯一数字的数据库对象.通过创建oracle序列和触发器来实 ...

  9. oracle sql序列,SQL server 和Oracle 序列

    1,SQL Server序列创建与使用 BEGIN IF EXISTS (SELECT * FROM sysobjects WHERE name = 'event_seq') DROP SEQUENC ...

最新文章

  1. 大白话带你认识Kafka
  2. 动态生成CheckBox(Winform程序)
  3. 基于动态IP的Internet视频监控解决方案(作者:吴晓晖)
  4. Android图片查看支持双击放大缩小、多点触摸(多机型测试,长期使用很稳定)
  5. 益生菌可能导致的“菌血症”与死亡(调研手稿六)
  6. jvm 参数-server_JVM选项:-client vs -server
  7. python前后两个下划线_Python中一个下划线_和两个下划线__的区别
  8. Unity URP一分钟实现遮挡透视
  9. 电脑数据恢复,哪种方法靠谱?
  10. 当spark遇见hbase
  11. 网页播放 .m3u8 视频文件
  12. 黑客的google运用技巧
  13. 上海名媛 -- 精致女孩的打拼生活
  14. 只用一个div画一个小米logo
  15. 无穷小微积分理论的“根”扎的有多深?
  16. opencv-python 读取视频时如何判断读取到最后一张
  17. 跨境电商须知: Google CWV新政及应对之道(上)
  18. OpenMP 学习(二)
  19. BZOJ1930: [Shoi2003]pacman 吃豆豆
  20. 3GPP R18确定27个研究项目,看看包含哪些?

热门文章

  1. 虚拟机Ubuntu设置固定IP与主机相互通讯
  2. Drawing the Stack
  3. OPPO手机没用多久就卡?赶快关闭这几个设置,手机还能多用几年
  4. 如何获得NPDP考试课时证明?
  5. Java基础知识篇(2020最新版) 准备放进收藏夹吃灰的勿进
  6. 如何更换jupyter notebook的默认浏览器
  7. python 词表里的词不符合_教你背单词 | 利用python分析考研英语阅读并生成词频降序表...
  8. 超好用的iOS管理软件iMazing2.16.3官方中文版
  9. 星志远电商:怎么取消多多免密支付?
  10. 内功修炼之操作系统学习(一操作系统概述)。