多语言展示
当前在线:369今日阅读:168今日分享:49

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

Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译。 有种巧妙的方式,不用删除,利用步长参数,先查出sequence的nextval,把递增改为负的这个值(反过来走),然后再改回来。 假设需要修改的序列名:seq_name获取seq_name的nextval值SELECTseq_name.nextval FROMdual;假设得到的结果是 555调整增长值ALTERSEQUENCEseq_name INCREMENTBY-554;注意此处是 -(n-1)重新获取seq_name的nextval值SELECTseq_name.nextvalFROMdual;此时获取nextval就重置为1了重新修改调整值为1ALTERSEQUENCEseq_name INCREMENTBY1;
推荐信息