从表中删除1条记录,并自动删除与mysql中的user_id关联的所有记录

Eli*_*Eli 0 mysql sql

我一直在尝试从在线阅读教程和东西中学习,但我不能指责它.

我目前有2个表(我在构建应用程序后会有更多的表)所以我想在扩展和编码之前解决这个问题.

我将我的表设置为使用InnoDB,并使用user_id外键将每个表相互关联.

如果我DELETE在主用户表上发出查询,我怎样才能从链接到该user_id字段的其他表中获取所有记录?

我知道它很简单,但我想我只需要自己提问,这样我就能理解答案而不是阅读答案......嘿

非常感谢任何帮助.

Mic*_*ski 5

由于它们是具有适当FK关系的InnoDB表,因此您可以简单地使用ON DELETE CASCADE外键定义.例如,在一个相关表中:

FOREIGN KEY (user_id) REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE
Run Code Online (Sandbox Code Playgroud)

但是,这需要更改现有架构以修改外键.

有关完整信息,请参阅MySQL FOREIGN KEY文档.