MySQL DELETE不起作用

时间:2016-03-23 11:07:40

标签: mysql

DELETE FROM Sport WHERE SportId = 1;

当我执行上面的操作时,我收到此错误。请帮帮我;

DogSport正在使用中。错误:DELETE FROM Sport WHERE SportId = 1 无法删除或更新父行:外键约束失败(dogsportorders,CONSTRAINT orders_ibfk_1 FOREIGN KEY(EqId)REFERENCES equipment({{ 1}}))

EqId

2 个答案:

答案 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;