oracle 倒库后insert id冲突的问题

错误为:ORA-00001: unique constraint violated

把test库的数据导入到另一个库后,忘记修改自增id sequence的nextval了,因此,当前的数据库中数据和sequence中nextval对应不上,可能数据库中已经有了id为50的数据了,而sequence的nextval值才到34,因此,继续插入数据就会id冲突了。

解方方法:

-- 首先从待插入表中拿到当前的最大id
select max(id) from current_table; --如当前最大id为19999
--然后查看id序列的nextval值
selec seq.nectval from dual; --如 10000
--然后
alter sequence seq increment by 20000;--修改该序列的增长间隔为20000(如果你要求id连续,那么可以计算一下,19999-10000=9999,那么这里可以设置为9999),那么下一个获取nextval的时候,会直接增加20000
--然后
select seq.nectval from dual;--获得的值为30000--此时id已经大于表中的最大id数了
--然后再将增长间隔改回来
alter sequence seq increment by 1;
posted @ 2016-03-21 14:27  JintaoXIAO  阅读(309)  评论(0编辑  收藏  举报