MySQL在multitable上删除行外键?

时间:2014-10-04 22:28:36

标签: mysql sql

我有一个大问题。 我需要在此模型DB

上删除multitable上的所有行

http://i62.tinypic.com/m7fhap.png

因为当我尝试(DELETE FROM alergia WHERE Grupo = 'Alergia1')时会返回此错误

 ERROR 1451: 1451: Cannot delete or update a parent row: a foreign key constraint fails (`odontologia`.`alergico`, CONSTRAINT `fk_Personas_has_Alergia_Alergia1` FOREIGN KEY (`Alergia_ID`) REFERENCES `alergia` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION)

SQL语句:

DELETE FROM `odontologia`.`alergia` WHERE `ID`='2'"

我可以删除,但使用一些变量和sql语句。 我正在阅读和谈论DELETE CASCADE,但我不能。 我需要删除表中与ID ALERGIAGRUPO有直接或间接关系的任何记录...非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您需要与Alergico进行连接并首先删除相应的外键行

如果你有多个这样的外键关系,你必须从所有这些表中删除它。

DELETE FROM Alergico
WHERE Alergia_ID in ( SELECT ID FROM Alergia where ID= 2)

然后你可以从Alergia

中删除
DELETE FROM Alergia where ID =2