oracle数据库报错:ORA-00001: 违反唯一约束条件


报错:

INSERT INTO "B_PLANT_GROW_OTHER"("OTHER_ID", "PLANT_GROW_ID", "WORK_TYPE", "WORK_DESC", "WORK_DATE", "OPERATOR", "CREATE_TIME", "UPDATE_TIME", "CREATE_BY", "UPDATE_BY") VALUES (s_b_plant_grow_other.nextval, '44', '除草', '人工除草', NULL, NULL, NULL, NULL, NULL, NULL)
> ORA-00001: 违反唯一约束条件 (GYPTS.SYS_C0015999)

> 时间: 0.004s

原因分析:出现这个问题的原因是插入数据的时候,由于之前没有使用序列插入,而是直接插入了一个比当前序列nextval还大的值,即直接将id写死了。后面再使用序列插入的时候,如果序列小于该值的话,是可以正常插入的,当序列号等于之前通过ID写死的方式插入的ID值时,就会出现这种情况。

解决办法:

通过执行如下sql,让序列号超过通过ID写死的方式插入的ID值即可。

SELECT SYS_MENU_SEQ.nextval FROM dual

注意:from后面是dual,不是真实的表。

再执行insert语句即可插入一条记录。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM