ORA-00001: unique constraint violated并不一定是主键冲突
2013-05-21 14:36
525 查看
原文链接:http://blog.163.com/jet_it_life/blog/static/205097083201301410303931/
原文内容:
收到一位测试人员RAISE的JIRA,说在某张表上INSERT不了数据,报ORA-00001: unique constraint violated的错误,但是仔细核查了一下,并没有发现有重复的数据,让帮忙检查一下是什么问题。
仅仅看错误,应该是数据冲突引起的。但有一点比较奇怪的是错误中提示的违反的约束是一个索引,而这个索引并不是唯一索引!将这个索引DROP后,ORA-00001依然存在,但是这次换了一个索引!而这个索引依然不是唯一索引!再将这个索引DROP后再进行INSERT,问题的本质就暴露出来了:
ERROR at line 1:
ORA-00600: internal error code, arguments: [6002], [0], [227], [2], [0], [], [], []
600的错误,可能是表或表上的索引数据有坏块或者表或表的索引结构存在问题,尝试分析表及索引的结构:
SQL> ANALYZE TABLE #.# VALIDATE STRUCTURE CASCADE;
ANALYZE TABLE #.# VALIDATE STRUCTURE CASCADE
*
ERROR at line 1:
ORA-01499: table/index cross reference failure - see trace file
已经基本可以确定问题在表结构及其索引,尝试对表及相关索引进行重建:
SQL> alter TABLE #.# move;
Table altered.
SQL> alter index #.# REBUILD;
Index altered.
...
重建完表和索引后,终于正常INSERT了。
最近几天,也遇到了一个Oracle的ORA-00001异常,查询表中的数据,也没有冲突的主键,就是偶尔保存数据就会出错,暂时还没找到原因,先mark一下
原文内容:
收到一位测试人员RAISE的JIRA,说在某张表上INSERT不了数据,报ORA-00001: unique constraint violated的错误,但是仔细核查了一下,并没有发现有重复的数据,让帮忙检查一下是什么问题。
仅仅看错误,应该是数据冲突引起的。但有一点比较奇怪的是错误中提示的违反的约束是一个索引,而这个索引并不是唯一索引!将这个索引DROP后,ORA-00001依然存在,但是这次换了一个索引!而这个索引依然不是唯一索引!再将这个索引DROP后再进行INSERT,问题的本质就暴露出来了:
ERROR at line 1:
ORA-00600: internal error code, arguments: [6002], [0], [227], [2], [0], [], [], []
600的错误,可能是表或表上的索引数据有坏块或者表或表的索引结构存在问题,尝试分析表及索引的结构:
SQL> ANALYZE TABLE #.# VALIDATE STRUCTURE CASCADE;
ANALYZE TABLE #.# VALIDATE STRUCTURE CASCADE
*
ERROR at line 1:
ORA-01499: table/index cross reference failure - see trace file
已经基本可以确定问题在表结构及其索引,尝试对表及相关索引进行重建:
SQL> alter TABLE #.# move;
Table altered.
SQL> alter index #.# REBUILD;
Index altered.
...
重建完表和索引后,终于正常INSERT了。
最近几天,也遇到了一个Oracle的ORA-00001异常,查询表中的数据,也没有冲突的主键,就是偶尔保存数据就会出错,暂时还没找到原因,先mark一下
相关文章推荐
- ORA-00001: unique constraint violated并不一定是主键冲突
- ORA-00001: unique constraint violated并不一定是主键冲突
- [ORACLE错误]ORA-00001: unique constraint (...) violated并不一定是数据冲突
- ORA-00001: unique constraint (...) violated并不一定是数据冲突
- ORA-00001: unique constraint (...) violated并不一定是数据冲突
- ORA-00001: unique constraint (...) violated并不一定是数据冲突
- ORA-00001: unique constraint (...) violated并不一定是数据冲突
- oracle主键自动增长的实现 Oracle Sequence oracle maxid自动生成--ORA-00001: 违反唯一约束条件 (NAME.SYS_C005547)产生的原因之一(select * from all_cons_columns w
- oracle数据库主键约束删除之后依然报错ORA-00001: unique constraint(违反唯一约束)
- ORA-02292主键约束问题
- 主键等于索引,索引不一定等于主键
- ORA-02437 使对已有数据不检查的主键约束生效
- InnoDB一定会在索引中加上主键吗?
- 轻易得到的并不一定不是好东西
- 主主复制-主主复制时的主键冲突解决
- ORA-00001 unique constraint violated错误的解决
- 从库宕机引发的主键冲突
- 给表追加主键-----报错ORA-02437: 无法验证 (DENGCHAO.TEST) - 违反主键
- 2015080403 - 并不一定畅销的就是好书
- MySql中利用insert into select 准备数据uuid主键冲突