暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 重置实时序列

ASKTOM 2019-09-25
319

问题描述

一个序列即将完成,所以我把它变大了。我在数据库11.2上工作,所以我不得不使用这里描述的一种解决方法 (https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1119633817597)。
LiveSQL中显示的过程在测试数据库上运行,并且一切正常。但是,当我在生产数据库上运行过程时,它最终无法执行立即行 (设置MINVALUE) 抛出ORA-04007: 不能使MINVALUE超过当前值。
测试和生产之间的区别在于,该序列在后者中不断使用。
我不明白为什么它会在生产而不是在测试数据库上造成错误。
你能帮忙吗?

专家解答

我对你在这里做什么有点困惑。您链接的方法是将序列重置回1。

看来您正在尝试将下一个值向上移动超过当前最大值。没必要这么做。

只需增加最大值:

alter sequence zcmd_seq_test 
  maxvalue 99999999999999999999;


无论你做什么,也不需要增加最小值!
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论