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 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话