监控系统搬迁服务器后机具状态获取不到了,查看日志是外键冲突
select SEQ_XXXX.currval from dual
查看当前CURRVAL,结果报错
先执行语句select SEQ_XXXX.nextval from dual,
后在执行select SEQ_XXXX.currval from dual可以成功获取到值,
和数据表中的值对比,发现数据库中的自增序列值大于currval
sequence是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,在插入之前,获取序列号nextval值,然后进行插入。也可以通过查询检查当前值,或使序列增至下一个值。
SELECT INR_REQUIRMENT_SQUENCE.CURRVAL FROM dual
–获取当前的sequence的值,
第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值, 然后返回增加后的值。CURRVAL 总是返回当前sequence的值,但是在第一次NEXTVAL 初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次sequence的值, 所以如果你在同一个语句里面使用多个NEXTVAL。
当数据表中的sequence最大值大于CURRVAL,解决办法