oracle序列清零(非删除),实际项目情景演示

在项目中,有可能要导入以前的数据,或其他数据,如果序列冲突了,会导不进去。此时就可以通过设置步长,来修改当前的序列。

先找到你要重置(修改)的序列

select * from dba_sequences where SEQUENCE_NAME like '%MCJNL%';

在这里插入图片描述
如果你的序列的最小值设置的是1,执行下面的语句使起始值为0:

alter sequence eipsit.mcjnlno minvalue 0;

查找当前序列的值

select eipsit.mcjnlno.nextval from dual;

在这里插入图片描述
可以看到当前的序列为4028,此时可以通过下面的命令来修改你想要的序列,比如我想要序列-50,那么我可以设置步长为-50.

alter sequence mcjnlno increment by -50;

执行之后查询序列,就可以把序列-50了
在这里插入图片描述
如果要把序列重置为零的话就执行下面的操作
设置步长

alter sequence mcjnlno increment by -3978;

执行序列:
select eipsit.mcjnlno.nextval from dual;

在这里插入图片描述
最后要调整步长为+1的正常状态。

alter sequence mcjnlno increment by 1;

下面就可以使用从1开始的序列了。


版权声明:本文为Yeoman92原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。