2014-10-04 75 views
0

我有一个很大的问题。 我需要删除多表所有的行...这个模型DBMySQL多行删除行外键?

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有直接或间接的关系表中的任何记录......非常感谢你的帮助

回答

0

你需要做Alergico联接,并删除相应的外键行第一

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

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

然后你可以从Alergia

DELETE FROM Alergia where ID =2 
+0

做删去,因为我是这个想法。只有一个解决方案?用一些句子去删除每个表格中的每个关系。 有没有一个声明会自动做到这一点? – 2014-10-05 00:40:23

+0

是的,没有其他解决方案或修改它有删除级联选项 – radar 2014-10-05 00:46:18

+0

嘿男人......谢谢..我可以配置DELETE CASCADE谢谢你的帮助!来自厄瓜多尔的问候! – 2014-10-07 02:54:32