业务上某个id采用触发器配合序列生成主键,由于在测试环境中,经常添加,导致序列当前值超过了最大值,那么oracle有没有方法修改序列的当前值呢?有的
首先我们可以查看当前序列值是多少,如下:
select 序列名.nextval from dual;
比方说我现在查出来值是10,那么我要把当前值改成8,那么可以这么改:
alter sequence 序列名 increment by -2;
如果我需要把当前值改成15,那么可以这么改:
alter sequence 序列名 increment by 5;
上述是通过修改当前序列增量长度间隔值,用于修改当前序列值,增加1或-1或n或-n,当修改好当前值之后,记得一定要把序列增量改回来,改为1:
alter sequence 序列名 increment by 1;