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

在用Oracle中经常碰到有这种情况,ORA-02291: 违反完整约束条件 (*) - 未找到父项关键字

总体说说可能出现的原因:

情况场景:

表A中有个字段是外键,关联了表B中的某字段,再往表A插入数据时,会出现这种情况。

可能原因:

1.在往A表插入时,外键关联的字段在B表中必须有数据,如果B表中没有数据则又这种情况。

2.产生了外键环,就是B表中被外键关联的字段又关联了C表中的字段,而C中相应字段却没有数据,则产生这种情况。

3.如果不是上两种情况,那么就是一个非常容易疏忽的问题:A中的外键字段和B中的被外键关联字段数据类型和长度不一致。特别是数据长度,必须要一致。

第三种情况是最容易忽略的,希望大家注意。

时间: 2024-10-31 07:02:17

ORA-02291: 违反完整约束条件 (*) - 未找到父项关键字的相关文章

java.sql.SQLException: ORA-02291: 违反完整约束条件 (BOOK.FK_USERNAME) - 未找到父项关键字

ORA-02291: 违反完整约束条件 (UNISPOWER.FK932556A9840256A3) - 未找到父项关键字 增加不了的原因是外键所在表的字段没有值

ORA-02298: 无法验证 (PNET.POST_CLOB_FK) - 未找到父项关键字

在运行以下语句的时候,报错如下: ALTER TABLE PN_POST ADD CONSTRAINT POST_CLOB_FK FOREIGN KEY (POST_BODY_ID) REFERENCES PN_POST_BODY_CLOB (OBJECT_ID); Error at line 1 [@[email protected]] /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-r

oracle违反完整约束条件

Oracle ORA-02292: 违反完整约束条件 (UNITELE.TA_SUB_REFERENCE3) - 已找到子记录 A表被B表引用,删除A表的时候提示ORA-02292,A表的主键被引用了,虽然已经把B表的数据全部删除掉,但仍然删除不了A表的数据. 解决办法: 用禁用约束语句把A表的主键约束给禁用掉. 1.禁用约束:alter table 表名 disable constraint 主键 CASCADE 2.删除A表的数据 3.启用约束:alter table 表名 enable c

hibernate中删除表遇到主键被外键引用违反完整约束条件不能删除的问题

MySQL在InnoDB中设置了foreign key关联,造成无法更新或删除数据.可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况.  SET FOREIGN_KEY_CHECKS = 0; 删除完成后设置 SET FOREIGN_KEY_CHECKS = 1;  其他: 关闭唯一性校验 set unique_checks=0; set unique_checks=1; 扩展: hibernate和Oracle两方不能同时处理数据完整性.解决方法如下: (方法1)将数据完整性

ORA-02292: 违反完整约束条件的处理方法

oracle删除某一条数据的时候,提示 使用以下sql查询外键的位置 SELECT A .constraint_name, A .table_name, b.constraint_name FROM user_constraints A, user_constraints b WHERE A .constraint_type = 'R' AND b.constraint_type = 'P' AND A .r_constraint_name = b.constraint_name AND A .

spring+mybatis+oracle ORA-00923: 未找到预期 FROM 关键字

使用spring+mybatis+oracle过程中遇到的一个错误. 最终看到网上分享才解决这个问题,mark一下. 主要问题是mybatis的配置有问题.下面我就直接复制了. 原文链接:http://hellostory.iteye.com/blog/1416507 再次谢谢原作者.thx! 经检查是数据库连接池配置错误(content.xml)! 配置SQL Server 2000(mysql同样)数据库连接池时,属性validationQuery默认值为“select 1”, 而在Orac

关于程序中数据库报错“父项未找到”

1.前端界面含有弹出框具有父子关系,在子类中未正确调用父类导致,请仔细查看程序 2.数据库对应表映射时,一个字段已经在表中映射成A表,但后期手动更改该字段映射成B表,更新映射启动后,运行报错"父项未找到". 由于这种操作在数据库中更改字段映射表时不会在该映射更新操作,而是在生成一个新的外键关系,此时需要在数据库中找到冲突的外键,手动删除 3 在程序运行过程中字段数据含有null,也会导致此报错 注意:如果字符串为拼接组成时,只要含有null,也会造成失败 -------以上为个人目前遇

史上最坑的证书报错解决方法:Code=3000 "未找到应用程序的“aps-environment”的权利字符串"

在ios注册远程通知获取设备令牌token的时候 // 注册远程通知获取设备令牌 toKen [[ UIApplication sharedApplication ] registerForRemoteNotificationTypes :(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound |UIRemoteNotificationTypeAlert )]; 莫名奇妙的总是会走这个错误的委托 // 远程通知注册失败委托 -

原因是未找到“sgen.exe”,或未安装 .NET Framework SDK v2.0

visual studio编译出现错误:错误 2 任务失败,原因是未找到“sgen.exe”,或未安装 .NET Framework SDK v2.0.该任务正在注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 的 SDKInstallRootv2.0 值中指定的位置下的“bin”子目录中查找“sgen.exe”.您可以通过执行下列操作之一,来解决这一问题: 1.) 安装 .NET Framework SDK v2.0.2.) 将上