如何手动级联删除

1 mysql

我有一张桌子,例如Updates

Update_ID | Time
Run Code Online (Sandbox Code Playgroud)

另一个表称为Announce_Updates

Announce_ID | Update_ID
Run Code Online (Sandbox Code Playgroud)

它们在删除时都有级联,但我可以想到我关闭外键检查并忘记重新激活的一些时刻。在那一刻,我可能删除了表上的一些数据,Updates而这些数据没有在Announce_Updates表上自动删除。

Update_ID当in的总数Announce_Updates大于主表本身的总数时,我意识到出了问题Updates

有没有办法来解决这个问题 ?

此致。

Jim*_*Jim 5

如果存在孤立Announce_Updates记录,您可以删除任何没有匹配的记录Update

DELETE FROM Announce_Updates WHERE Update_ID NOT IN (SELECT Update_ID FROM Updates)
Run Code Online (Sandbox Code Playgroud)

与往常一样,请确保在运行互联网上有人告诉您的任何查询之前备份数据库。