ORA-000001:unique constraint 独立性约束错误

接收迁移定时任务的工作。遇到这个问题。查询数据库发现id已经到了6万多,而序列值才到3万多。当经行插入操作时,自然会出现重复数据报错。

Oracle重置序列初始位置

需求:oracle数据库现在序列是10,现在需要改为从100开始(原来每次递增1,不想手动查90多次~)

思路:

先将序列自增量调大一点,然后查询一次,然后再改回来.(就是说使序列值大于目前表id值,避免出错。同时注意查询序列最大值时,序列值也会自增)

实现方法

 DEMO 表示表名,DEMO_SEQ 表示序列
--查询最大
select  max(id)   from DEMO;
--查询下一个序列
select  DEMO_SEQ.nextval  from dual;
--更改增量为100
alter SEQUENCE  DEMO_SEQ INCREMENT BY   90;
--做一次查询序列
select  DEMO_SEQ.nextval  from dual;
--重新更改增量为1
alter SEQUENCE  DEMO_SEQ INCREMENT BY   1;
--再查询验证一次查询序列
select  DEMO_SEQ.nextval  from dual;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值