文档章节

违反约束条件未找到父项关键字

欧阳飘
 欧阳飘
发布于 2017/02/25 22:19
字数 410
阅读 27
收藏 0

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

可能原因有如下几种情况:

插入的数据 如果某个字段是外键 那么该值要么为空 要么在主键表中 有对应的主键值 否则 就不满足参照完整性约束
所以你肯定插入了 不存在的主键值 所以产生了这个错误

创建A表

create table  A( a_id varchar2(32) primary key , name varchar2(50));

创建B表

create table B( b_id varchar2(32) primary key , name varchar2(50), my_id varchar2(32) ,

constraint fk foreign key(my_id) references A(a_id) );

我们可以看出B表中的my_id字段是外键并且参考了A表中的 a_id;

insert into A values("1", "软件");

insert into B values("1","黄勇","1");

此时B表中添加数据时,由于A表中有a_id=1 , 所以B表中插入数据是正常的, 如果B表中插入A表中没有的主键a_id 列入: insert into B values("1","黄勇","2");

由于a表中 a_id="2" 就不存在;那么此时 添加这条数据就会出现违反约束条件未找到父项关键字

这个错误;

② B中的外键字段和A中的被外键关联字段数据类型和长度不一致。特别是数据长度,必须要一致。 否则也会出现 违反约束条件未找到父项关键字

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
欧阳飘
粉丝 0
博文 38
码字总数 15160
作品 0
乌鲁木齐
程序员
NSGA2代码分析——dominance.c

该源文件中包含一个函数int check_dominance (individual *a, individual *b), 主要功能是比较两个个体的支配关系,该函数有三个返回值:0——两个体不可比较支配关系;1——a个体支配b;-...

长平狐
2012/09/20
115
0
sqlldr数据插入 vs 数据保存

直接路径加载与常规路径加载的比较 保存数据的方法 常规路径加载使用 SQL 处理和数据库 COMMIT 操作来保存数据。插入记录数组后会执行 COMMIT 操作。每次数据加载可能涉及多个事务处理。 直接...

William
2013/02/05
0
0
MySQL 项目移植Oracle

最近公司公司项目为支持oralce数据库,我们对项目进行移植,项目中使用 MyBatis需要手工对 MyBatis sql xml文件进行修改,修改过程中遇到不少问题,记录在此方便后续查看。 数据类型错误 OR...

皮蛋猫
2015/04/10
0
0
维护数据完整性

1、数据完整性规则:域完整性(Domain 栏位列)、实体完整性(Entity 实体行)、参照完整性(Reference) 数据完整性三种方式:a.使用应用代码;b.触发器trigger通过一段代码(过程)满足某个...

spider1983
2014/04/17
0
0
关于mysql出现java.sql.SQLException错误!

java.sql.SQLException错误! ORA-00904: --invalid column name 无效列名 ORA-00942:  --table or view does not exist 表或者视图不存在 ORA-01400:  --cannot insert NULL into () 不能......

费氏家族
2017/10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ在CentOS环境安装

1.废话不多说准备一台虚拟机,系统为centos,我这里使用的系统版本如下图所示:

凌晨一点
54分钟前
0
0
线程池相关

在java.util.concurrent包下,提供了一系列与线程池相关的类。 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务...

edwardGe
56分钟前
0
0
学习大数据这三个关键技术是一定要掌握!

大数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。学习大数据技术的人自然是络绎不绝, 学习大数据虽然是一个趋势,但也要注意大数据培训课程...

董黎明
今天
0
0
jetbrains 上传代码到github

设置中找github 获取token 验证是否成功 测试git 生成key,一路回车即可 ssh-keygen -t rsa -C “youremail@example.com” 打开pub复制key,需要再次输入一次密码 验证是否成功,输入yes即可...

阿豪boy
今天
0
0
分布式服务框架(拾遗)

前言 现在的大部分工程都已经是基于分布式架构来处理。所以这里对分布式框架做一个简单的总结 常用的RPC框架 RPC框架原理 RPC(Remote Procedure Call,远程过程调用)一般用来实现部署在不同...

kukudeku
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部