MySQL 错误 1452 - 无法添加或子行:外键约束失败
要了解错误1452,首先我们需要创建一个表,并借助外键约束将其与另一个表相关联。
创建第一个表-
mysql> CREATE table ForeignTable -> ( -> id int, -> name varchar(200), -> Fk_pk int -> );
成功创建第一个表后,我们将创建第二个表-
mysql> CREATE table primaryTable1 -> ( -> Fk_pk int, -> DeptName varchar(200), -> Primary key(Fk_pk) -> );
现在,我们已经创建了两个表。然后这两个表都在alter命令的帮助下关联,并添加了外键约束。语法如下-
alter table yourFirstTable add constraint anyConstraintName foreign key(column_name which is acts foreign key in second table) yourSecondTable(column_name which acts primary key in second table).
现在,上面的查询用于关联两个表。这给出如下-
mysql> alter table ForeignTable add constraint constFKPK foreign key(Fk_pk) references primaryTable1(Fk_pk); Records: 0 Duplicates: 0 Warnings: 0
现在,这两个表是相关的。记录插入表“foreignTable”如下-
mysql> INSERT into ForeignTable values(1,'John',1);
这会导致以下输出中显示的错误-
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`business`.`foreigntable`, CONSTRAINT `constFKPK` FOREIGN KEY (`Fk_pk`) REFERENCES `primarytable1` (`fk_pk`))
在上面的输出中,我们收到错误“无法添加或更新子行:外键约束失败”。我们可以通过将记录插入表primaryTable1来消除此错误,如下所示-
mysql> INSERT into primaryTable1 values(1,'ComputerScience');
将记录插入到表primaryTable1后,我们可以将所需的记录插入到表ForeignTable中,不会出现任何错误。这如下所示-
mysql> INSERT into ForeignTable values(1,'John',1);
现在,我们可以在select命令的帮助下显示ForeignTable的表记录,如下所示-
mysql> SELECT * from ForeignTable;
上述查询的输出是-
+------+------+-------+ | id | name | Fk_pk | +------+------+-------+ | 1 | John | 1 | +------+------+-------+ 1 row in set (0.00 sec)
我们还可以借助select命令显示primarytable1的表记录,如下所示-
mysql> SELECT * from primarytable1;
上述查询的输出是-
+-------+-----------------+ | Fk_pk | DeptName | +-------+-----------------+ | 1 | ComputerScience | +-------+-----------------+ 1 row in set (0.00 sec)
错误1452-无法添加或更新子行:最初将数据记录插入ForeignTable时,会发生外键约束失败。
Note: First, add the record into the second tablei.eprimarytable1 to avoid the above error.
热门推荐
10 简短祝福语中考女孩的话
11 祝福语对联文案简短大气
12 新年祝福语小知识简短
13 简短佛教新年祝福语大全
14 幼儿老师过年简短祝福语
15 春节拜年祝福语儿童简短
16 18岁的祝福语简短
17 哥哥祝福语简短霸气句子
18 敏字的祝福语简短