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

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

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

Oracle创建序列仍然违反唯一约束的问题_第1张图片

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

--删除索引
drop sequence seq_test;

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

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

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

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

你可能感兴趣的:(错误总结)