zoukankan      html  css  js  c++  java
  • ORA00001: unique constraint violated并不一定是主键冲突

    原文链接: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一下

  • 相关阅读:
    Ajax的技术与原理探讨
    Ajax技术与原理
    AJAX原理
    vue中ref的一些常见作用
    表的连接查询
    mysql使其支持插入中文数据的办法
    16 散列表-基于除余留数法与线性探测法的实现
    win10上Tensorflow的安装教程
    哨兵/sentinel:在算法设计中的应用
    快速选择算法/Select 寻找第k大的数
  • 原文地址:https://www.cnblogs.com/wenlong/p/6188465.html
Copyright © 2011-2022 走看看