何时使用ON DELETE CASCADE

时间:2013-01-17 17:40:51

标签: mysql sql

我想知道在下面使用ON DELETE CASCADE是否是个好主意。这是我一般的想法何时使用ON DELETE CASCADE来删除行。

模块表:

ModuleId (PK) ModuleNo  ModuleName
11            CHI2333    ICT

Course_Module表:

CourseId  ModuleId (FK)
3          11

会话表(考试):

SessionId  SessionName  ModuleId (FK)
5           ASDEE        11

在上面的例子中,如果我从Module表中删除一行,那么它将删除包含相同ModuleId的其他2个表中的行。在Course_Module表中,它确定哪个课程包含哪些模块,并在Session表中包含考试详细信息,它将删除包含已删除的ModuleId的所有行(考试)。

上面的示例是否可以执行此操作,我的一般问题是,当父表中的行被删除或删除时,使用ON DELETE CASCADE删除外键行是明智和正常的做法吗?

1 个答案:

答案 0 :(得分:0)

就我个人而言,我认为在代码中使用该逻辑更好,而不是依靠数据库来为您完成工作。这是我编写所有应用程序的方式。

只需2美分。