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 妈妈生日祝福语简短励志