MYSQL:如何自动删除表中依赖于另一个表中的记录的行

时间:2019-07-13 08:19:35

标签: mysql sql database

我对mysql的了解很少,所以请原谅我的问题。

我有两个表,其中一个包含课程,如下所示:

id  title   type    language    level

另一个包含以下部分:

lesson_id   title   content duration

每节课有0个或几个部分。

现在我的网页中有一个功能,允许我删除课程。

1-如何使课程记录中的部分依赖

我希望通过删除课程记录,数据库自动知道它必须删除属于该课程的所有部分字段。

2 个答案:

答案 0 :(得分:3)

更改分区表,并将lesson_id定义为引用课程表的外键,并将其定义为“删除级联”。

ALTER TABLE sections
ADD FOREIGN KEY fk_lesson(lesson_id)
REFERENCES lessons(id)
ON DELETE cascade;

这样,当您从“课程表”中删除一行时,从“节表”中删除所有行。

答案 1 :(得分:0)

您可以使用一个查询从两个表中删除

假设您要删除与课程ID = your_value相关的行

尝试使用联接

    delete l, s
    from lessons l
    inner join section s on s.lesson_id  = l.id 
    where l.id = your_value