在我的数据库中有 3 个重要的表:Jobs、Login 和 Staff。 Jobs 充当链接表,包含 LoginID 和 StaffID。我通过 PHPMyAdmin 设置了级联,如下所示:
但是,当我从作业表中删除一行时,它仅从作业表中删除,而不是从作业和登录表中的相应行中删除。这是什么原因呢?谢谢。
最佳答案
级联则相反。当您在作业表中说它指的是登录名和员工并希望级联删除时,这意味着当您删除登录名或员工中的项目时,删除将级联>into jobs 表以及在 login 或 staff 中引用该行的所有行也将被删除。
所以在你的例子中,jobs是子表,而login/staff是父表。您无法从作业级联到登录名和员工,因为这会从子级传递到父级。
关于MySQL ON DELETE CASCADE 设置但不从其他表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56442195/