ORA-02292: 违反完整约束条件 (用户名.约束名) - 已找到子记录

原创 2012年03月22日 09:46:59

今天遇到一个问题,在删除表的时候报的错ORA-02292: 违反完整约束条件 (用户名.约束名) - 已找到子记录。

原因是:删除该表时,有依赖该表的子表数据,需要删除该条记录或者禁用约束。如果记录多,查找很不方便。所以最好就是禁用约束。那么表那么多我们怎么看约束在哪个表里呢。这里需要查询 constraint_name 表。让我们看看 desc constraint_name; (红色部分)

Name              Type         Nullable Default Comments                                                                   
----------------- ------------ -------- ------- ---------------------------------------------------------------------------
OWNER             VARCHAR2(30)                  Owner of the table                                                         
CONSTRAINT_NAME   VARCHAR2(30)                  Name associated with constraint definition                                 
CONSTRAINT_TYPE   VARCHAR2(1)  Y                Type of constraint definition                                              
TABLE_NAME        VARCHAR2(30)                  Name associated with table with constraint definition                      
SEARCH_CONDITION  LONG         Y                Text of search condition for table check                                   
R_OWNER           VARCHAR2(30) Y                Owner of table used in referential constraint                              
R_CONSTRAINT_NAME VARCHAR2(30) Y                Name of unique constraint definition for referenced table                  
DELETE_RULE       VARCHAR2(9)  Y                The delete rule for a referential constraint                               
STATUS            VARCHAR2(8)  Y                Enforcement status of constraint -  ENABLED or DISABLED                    
DEFERRABLE        VARCHAR2(14) Y                Is the constraint deferrable - DEFERRABLE or NOT DEFERRABLE                
DEFERRED          VARCHAR2(9)  Y                Is the constraint deferred by default -  DEFERRED or IMMEDIATE             
VALIDATED         VARCHAR2(13) Y                Was this constraint system validated? -  VALIDATED or NOT VALIDATED        
GENERATED         VARCHAR2(14) Y                Was the constraint name system generated? -  GENERATED NAME or USER NAME   
BAD               VARCHAR2(3)  Y                Creating this constraint should give ORA-02436.  Rewrite it before 2000 AD.
RELY              VARCHAR2(4)  Y                If set, this flag will be used in optimizer                                
LAST_CHANGE       DATE         Y                The date when this column was last enabled or disabled                     
INDEX_OWNER       VARCHAR2(30) Y                The owner of the index used by the constraint                              
INDEX_NAME        VARCHAR2(30) Y                The index used by the constraint                                           
INVALID           VARCHAR2(7)  Y                                                                                           
VIEW_RELATED      VARCHAR2(14) Y  

可以看到表名和约束名。我们用语句来禁用该约束

alter table 表名 disable constraint 约束名;

........

当然删除了表以后,别忘记在启用该约束

alter table 表名 enable constraint 约束名;

这里就全都完成了                                                                                         

ORA-02291: 违反完整约束条件 - 未找到父项关键字

出现这种
  • wen_demon
  • wen_demon
  • 2014年06月23日 10:06
  • 3167

ORA-02291: 违反完整约束条件 - 未找到父项关键字

总体说说可能出现的原因: 情况场景: 表A中有个字段是外键,关联了表B中的某字段,再往表A插入数据时,会出现这种情况。 可能原因: 1. 插入的数据 如果某个字段是外键 那么该值要么为空 要么...
  • u012468263
  • u012468263
  • 2015年11月15日 20:54
  • 1940

oracle触发器导致的hibernate违反完整性约束, (*) - 未找到父项关键字

在做项目的时候,出现了hibernate违反完整性约束, (*) - 未找到父项关键字,这个错误其实不难理解。很多时候我们只有是什么原因导致的。但是,不知道具体原因和解决的方法。当然出现了这个问题的时...
  • zhbitxhd
  • zhbitxhd
  • 2013年12月21日 19:08
  • 1676

ORA-02291: 违反完整约束条件 (CLMDATA.FK_XXX_XXX) - 未找到父项关键字

org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested...
  • qq_26920109
  • qq_26920109
  • 2016年05月11日 13:54
  • 456

ORA-02291: 违反完整约束条件 - 未找到父项关键字

出现这种
  • wen_demon
  • wen_demon
  • 2014年06月23日 10:06
  • 3167

ORA-02291: 违反完整约束条件 - 未找到父项关键字

总体说说可能出现的原因: 情况场景: 表A中有个字段是外键,关联了表B中的某字段,再往表A插入数据时,会出现这种情况。 可能原因: 1. 插入的数据 如果某个字段是外键 那么该值要么为空 要么...
  • qq_16542775
  • qq_16542775
  • 2016年09月29日 16:55
  • 364

oracle中插入数据出现错误:ORA-02291: 违反完整约束条件 (SCOTT.FK_SX9MLJB8T3FWB40GVCSKHYSYT)- 未找到父项关键字

总体说说可能出现的原因: 情况场景: 表A中有个字段是外键,关联了表B中的某字段,再往表A插入数据时,会出现这种情况。 可能原因: 1. 插入的数据 如果某个字段是外键 那么该值要么为空 要...
  • liuchangjie0112
  • liuchangjie0112
  • 2016年05月17日 12:05
  • 1173

ORA-02291: 违反完整约束条件 - 未找到父项关键字

总体说说可能出现的原因: 情况场景: 表A中有个字段是外键,关联了表B中的某字段,再往表A插入数据时,会出现这种情况。 可能原因: 1. 插入的数据 如果某个字段是外键 那么该值要么为空 要么...
  • u012468263
  • u012468263
  • 2015年11月15日 20:54
  • 1940

ORA-02291: 违反完整约束条件 - 未找到父项关键字

总体说说可能出现的原因: 情况场景: 表A中有个字段是外键,关联了表B中的某字段,再往表A插入数据时,会出现这种情况。 可能原因: 1. 插入的数据 如果某个字段是外键 那么该值要么为空 要...
  • jihuanliang
  • jihuanliang
  • 2012年01月16日 23:43
  • 97910

ORA-02291: 违反完整约束条件 - 未找到父项关键字 问题解决

总体说说可能出现的原因: 情况场景: 表A中有个字段是外键,关联了表B中的某字段,再往表A插入数据时,会出现这种情况。 可能原因: 1. 插入的数据 如果某个字段是外键 那么...
  • gongth_12
  • gongth_12
  • 2013年10月25日 18:06
  • 2905
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORA-02292: 违反完整约束条件 (用户名.约束名) - 已找到子记录
举报原因:
原因补充:

(最多只允许输入30个字)