旅游景点 旅游攻略 生活知识 文化旅游 旅游景区 昆明旅游 桂林旅游 乡村旅游 上海旅游 知识问答

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

时间:2024-11-13 16:16:14

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了

重新修改调整值为1

ALTERSEQUENCEseq_name INCREMENTBY1;

© 2026 途途旅游
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com