我收到此错误:
1452 - 无法添加或更新子行:外键约束失败。
我已经找到了它们并尝试摆脱引用
alter table tillhör drop foreign key kat_id;
但是得到了这个错误:
#1025 - 将 '.\recept\tillh@1ir' 重命名为 '.\recept#sql2-1570-3cb' 时出错(错误号:152)。
我做错了什么?
我收到此错误:
1452 - 无法添加或更新子行:外键约束失败。
我已经找到了它们并尝试摆脱引用
alter table tillhör drop foreign key kat_id;
但是得到了这个错误:
#1025 - 将 '.\recept\tillh@1ir' 重命名为 '.\recept#sql2-1570-3cb' 时出错(错误号:152)。
我做错了什么?
在查询运行之前
SET FOREIGN_KEY_CHECKS=0
完成后将其设置为 1。
我面临同样的问题。我通过清除来解决这个问题,即从子表中删除所有数据并成功完成。
如果子表包含一些具有外键但不在父表中的数据,即如果有两个名为Person(列 id、name、address)和order(列 id、person_id、order_name)的表,则会发生这种情况;order.person_id 是 person.id 的外键,并且 order 表包含 person_id ,它不在 person 表中。
您可以使用以下查询解决此问题
Delete from order where person_id NOT IN (select id from person where person.id = order.person_id)
当我遇到这个问题时,这是由于我在创建外键 id 字段时忘记指定允许的 NULLS。事后我更改了它,但值中已经有 0 了。它在匹配表中找不到0,然后给出了这个错误。修复:将零值更新为空值。
您必须从父表到子表设置空值或设置相同的值,例如子表首先 nam=Derick 父表名称=Derick