2014-10-04 76 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