ITPub博客

首页 > 数据库 > Oracle > Oracle重置序列(不删除重建方式)

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

Oracle 作者:yanyanyanfeng 时间:2013-12-14 23:56:00 0 删除 编辑

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

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

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

  1. 获取seq_name的nextval值

    SELECT seq_name.nextval FROM dual;

    假设得到的结果是 555

  2. 调整增长值

    ALTER SEQUENCE seq_name INCREMENT BY -554;

    注意此处是 -(n-1)

  3. 重新获取seq_name的nextval值

    SELECT seq_name.nextval FROM dual;

    此时获取nextval就重置为1了

  4. 重新修改调整值为1

    ALTER SEQUENCE seq_name INCREMENT BY 1;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21171572/viewspace-1108462/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-03-21