OneToMany关系。如何删除行?
问题描述:
你好。我刚刚学会了如何选择所有相关的数据,比方说,行 tennismatch.ID = 1:
SELECT * FROM tennismatch m
JOIN tennismatch_tennisset ms
ON m.`ID` = ms.`TennisMatch_ID`
JOIN tennisset s
ON ms.`mapOfSets_ID` = s.`ID`
JOIN tennisset_game sg
ON s.`ID` = sg.`TennisSet_ID`
JOIN game g
ON sg.`gamesMap_ID` = g.`ID`
JOIN game_point gp
ON g.`ID` =gp.`Game_ID`
JOIN point p
ON gp.`points_ID` = p.`ID`
WHERE m.`ID` = 1
,但我想不出如何删除这一切。 非常感谢提前。
答
使用DELETE JOIN语句
DELETE m, s, g, p, ms, sg, gp
FROM tennismatch m
JOIN tennismatch_tennisset ms ON m.ID = ms.TennisMatch_ID
JOIN tennisset s ON ms.mapOfSets_ID = s.ID
JOIN tennisset_game sg ON s.ID = sg.TennisSet_ID
JOIN game g ON sg.gamesMap_ID = g.ID
JOIN game_point gp ON g.ID = gp.Game_ID
JOIN point p ON gp.points_ID = p.ID
WHERE m.ID = 1
不能删除或更新父行,外键约束失败('tennis_scores'.'tennismatch_tennisset',约束'FK_TENNISMATCH_TENNISSET_TennisMatch_ID'外键('TennisMatch_ID')参考' tennismatch'('ID')) –
我可以,因为,禁用外键检查。 –