Oracle创建序列仍然违反唯一约束的问题

--创建索引
create sequence seq_test;
--插入数据
insert into s_emp(id,last_name) values(seq_test.nextval,'HUAAN');

先创建序列,再插入数据,正常的情况下不会有问题,但是报错了:

然后去查了下,据说是在建表的时候已经插入了部分数据,导致sequence的开始自增序列不为当前id最大值。
所以要重新设置sequence的自增起始值。也就是重新创建序列。

--删除索引
drop sequence seq_test;

--重新创建索引
create sequence seq_test
increment by 1
--此处需要去查看表中id最大值,由于我的表中有25条数据,所以从26开始。
start with 26
nomaxvalue
nocycle
cache 10;

然后继续插入数据就没有问题了。

可以推理出一个问题---创建序列应该最好在创建表之后,插入数据之前。

如果有错欢迎指正,侵删。。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值