Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 错误1452:无法添加或更新A3ENROLL的子行_Mysql - Fatal编程技术网

Mysql 错误1452:无法添加或更新A3ENROLL的子行

Mysql 错误1452:无法添加或更新A3ENROLL的子行,mysql,Mysql,我创建了以下表格: A3STUDENT CREATE TABLE A3STUNDENT( STD_ID INTEGER NOT NULL, STD_NAME VARCHAR(30), STD_MAJOR CHAR(4), STD_RANK CHAR(2), CONSTRAINT PK_A3STUDENT PRIMARY KEY (STD_ID) ); CREATE TABLE A3COURSE( CRS_TIME VARCHAR(10), CRS_ROOM CHAR(5), CRS_ID CH

我创建了以下表格:

A3STUDENT
CREATE TABLE A3STUNDENT(
STD_ID INTEGER NOT NULL,
STD_NAME VARCHAR(30),
STD_MAJOR CHAR(4),
STD_RANK CHAR(2),
CONSTRAINT PK_A3STUDENT PRIMARY KEY (STD_ID)
);

CREATE TABLE A3COURSE(
CRS_TIME VARCHAR(10),
CRS_ROOM CHAR(5),
CRS_ID CHAR(7) NOT NULL,
CONSTRAINT PK_A3COURSE PRIMARY KEY (CRS_ID)
);

CREATE TABLE A3ENROLL(
ENR_GRADE CHAR(1),
STD_ID INTEGER NOT NULL,
CRS_ID CHAR(7) NOT NULL,
CONSTRAINT PK_A3ENROLL PRIMARY KEY (STD_ID, CRS_ID),
CONSTRAINT FK_STD_ENR FOREIGN KEY (STD_ID) REFERENCES A3STUDENT(STD_ID),
CONSTRAINT FK_CRS_ENR FOREIGN KEY (CRS_ID) REFERENCES A3COURSE(CRS_ID)
);
当我要插入如下值时:

INSERT INTO  A3ENROLL VALUES ('A', 100, 'MGMT445');
我收到这个错误:

#1452-无法添加或更新子行:外键约束失败(
Hess
A3ENROLL
,约束
FK\u CRS\u ENR
外键 (
CRS\u ID
)参考资料
a3课程
CRS\u ID


我似乎不明白为什么我的数据不能插入。我忽略了什么?

这通常是因为
a3student
A3COURSE
表中没有数据

外键关系表示包含中心数据值的主表和具有指向父表的相同值的子表,如果父表中没有匹配的候选键值,则拒绝尝试在子表中创建外键值的任何插入或更新操作

A3ENROLL
作为参考
100
MGMT445
,在上述表格中不存在

A3ENROLL
表中插入数据之前,必须确保其他表
A3STUNDENT
A3COURSE
中有数据,因为表
A3ENROLL
有一个外键
A3STUNDENT
A3COURSE
,这意味着这些表中必须有这些数据,例如:

Select * from A3STUNDENT;

STD_ID | STD_NAME | STD_MAJOR | STD_RANK
100    | 'Zack'   | ...       | ....


Select * from A3COURSE;

CRS_ID  | CRS_ROOM | CRS_TIME
MGMT445 | ...      | ....
您可以尝试在前面的表中插入数据,然后在表中插入
A3ENROLL

这里有更多信息: