DELETE FROM Sport WHERE SportId = 1;
当我执行上面的操作时,我收到此错误。请帮帮我;
DogSport正在使用中。错误:DELETE FROM Sport WHERE SportId = 1
无法删除或更新父行:外键约束失败(dogsport
。orders
,CONSTRAINT orders_ibfk_1
FOREIGN KEY(EqId
)REFERENCES equipment
({{ 1}}))
EqId
答案 0 :(得分:2)
首先删除对此表FK
的其他表,然后从中删除:
DELETE FROM Equipment WHERE SportId=1;
DELETE FROM UserSport WHERE SportId=1;
DELETE FROM Sport WHERE SportId=1;
答案 1 :(得分:0)
应该至少有一个儿童设备表,你错过了。
首先执行以下命令,该命令将为您提供设备表的所有子表 -
select * from information_schema.KEY_COLUMN_USAGE where TABLE_SCHEMA ='your_db' and REFERENCED_TABLE_NAME ='equipment';
注意:使用您的数据库名称更改your_db。
然后从子表中删除行,或者在删除级联"上也应该删除行。而不是"删除级联没有动作"
还有一种短路也不是一种干净的方式 -
您可以禁用外键检查和删除,但我不会建议。
set foreign_key_checks=0;
DELETE FROM Sport WHERE SportId=1;
set foreign_key_checks=1;