Oracle重置序列(不删除重建方式)

 时间:2026-02-14 10:19:36

    Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译。

    有种巧妙的方式,不用删除,利用步长参数,先查出sequence的nextval,把递增改为负的这个值(反过来走),然后再改回来。

    假设需要修改的序列名:seq_name

    获取seq_name的nextval值

    SELECT seq_name.nextval FROM dual;

    假设得到的结果是 555

    调整增长值

    ALTER SEQUENCE seq_name INCREMENT BY -554;

    注意此处是 -(n-1)

    重新获取seq_name的nextval值

    SELECT seq_name.nextval FROM dual;

    此时获取nextval就重置为1了

    重新修改调整值为1

    ALTER SEQUENCE seq_name INCREMENT BY 1;

  • MPP数据库之Vertica安装步骤
  • VBS脚本基础教程:[6]数组的定义及使用
  • easyUi如何控制easyui-textbox长度
  • 在js里面怎样获取一个值的前4位?
  • 如何创建图像映射
  • 热门搜索
    春节手抄报 简单 红红火火过大年手抄报 教师节的手抄报 我的2035年手抄报图片 中秋节手抄报图画 母亲节手抄报简单好画 2035年的家乡手抄报 铁人精神手抄报 交通手抄报内容 勿忘国耻手抄报内容