Oracle重置序列(不删除重建方式)
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;
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:165
阅读量:131
阅读量:92
阅读量:169
阅读量:64