内容简介:背景:后台服务测试过程中,发现往Oracle数据库表中插数据出现一个错误 unique constraint,如下:### Error updating database. Cause:Java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (TEST53.SYS_C0032604) violated
背景:
后台服务测试过程中,发现往Oracle数据库表中插数据出现一个错误 unique constraint,如下:
### Error updating database. Cause:Java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (TEST53.SYS_C0032604) violated
### The error may exist in class path resource [sqlmapper/ACMClaimMapper.xml]
### The error may involve com.las.core.dal.dao.ACMClaimMapper.insert-Inline
### The error occurred while setting parameters
### SQL: insert into TBL_ACM_CLAIM ( SEQ_NO, ACCT_NO, FUND_CHANNEL,STATUS,CREATE_DATE,CSM_NAME,CSM_CARD,LOAN_DATE,LOAN_AMT ) values ( ?,?,?,?,?,?,?,?,? )
### Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (TEST53.SYS_C0032604) violated
; SQL []; ORA-00001: unique constraint (TEST53.SYS_C0032604) violated
; nested exception is java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (TEST53.SYS_C0032604) violated
原因:
根据提示的索引号,找到了表中的字段“SEQ_NO”,发现是因为测试数据库是由另一个数据库同步过来的,表中自动的序列号被打乱,导致下一次插入数据的时候,sql自动生成的序列号所在的位子已经有了数据,所以导致了唯一约束错误。当然数据的错误删除和人为的错误操作都会导致这个问题。
解决:
首先,我们可以查询一下这个表的序列号在什么位子(我的表为TBL_ACM_CLAIM):
select SEQ_ACM_CLAIM.NEXTVAL from DUAL
不要随便执行这个sql,因为没执行一次,索引值都会自增+1;查询到结果后,对比表中现有的数据,进行对比,如果表中SEQ_NO的值大于查询到的值,就将把索引值进行更新,设定序列步长为100(一般都是1),执行下面sql:
alter sequence SEQ_ACM_CLAIM increment by 100
注意:SEQ_ACM_CLAIM 是不是表名,还有就是索引值不能修改当前值,只能修改增加,不能减少。
提示:
查询所有所有索引:
select * from user_sequences;
删除索引:
drop sequence SEQ_ACM_CLAIM;
创建索引:
CREATE UNIQUE INDEX SEQ_ACM_CLAIM ON TBL_ACM_CLAIM(SEQ_NO);
总结:
删库到跑路,一秒就够。
更多Oracle相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-05/158865.htm
以上所述就是小编给大家介绍的《Oracle插入数据时出现 ORA-00001: unique constraint》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 定时插入数据测试脚本
- 【数据结构与算法】—— 插入排序
- c# 插入数据效率测试(mongodb)
- Python多线程批量插入数据小结
- php-在mysql里批量插入数据
- spark-sql 创建表 插入数据
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ant Colony Optimization
Marco Dorigo、Thomas Stützle / A Bradford Book / 2004-6-4 / USD 45.00
The complex social behaviors of ants have been much studied by science, and computer scientists are now finding that these behavior patterns can provide models for solving difficult combinatorial opti......一起来看看 《Ant Colony Optimization》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
图片转BASE64编码
在线图片转Base64编码工具