Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MYSQL和PHP中删除数据库条目和关联的连接表数据_Php_Mysql_Sql - Fatal编程技术网

在MYSQL和PHP中删除数据库条目和关联的连接表数据

在MYSQL和PHP中删除数据库条目和关联的连接表数据,php,mysql,sql,Php,Mysql,Sql,A有这样一种情况,即创建课程,指定教师讲授所述课程,然后学生可以预订课程。这些都是多对多的。课堂老师和学生。有一个课程表和两个连接表将它们链接起来 结构如下: Lesson Table - lesson.lessonID Lesson/Student Junction Table - lsj.lessonFK Lesson/Teacher Junction Table - ltj.lessonFK 我希望从“课程”表中删除课程,但由于连接表关联,无法删除。我尝试先删除关联,然后删除课程,但似

A有这样一种情况,即创建课程,指定教师讲授所述课程,然后学生可以预订课程。这些都是多对多的。课堂老师和学生。有一个课程表和两个连接表将它们链接起来

结构如下:

Lesson Table - lesson.lessonID
Lesson/Student Junction Table - lsj.lessonFK 
Lesson/Teacher Junction Table - ltj.lessonFK
我希望从“课程”表中删除课程,但由于连接表关联,无法删除。我尝试先删除关联,然后删除课程,但似乎不起作用

DELETE
FROM junc_lesson_teacher, junc_lesson_student, lesson
JOIN user ON user.userID = junc_lesson_teacher.teacherFK
JOIN lesson ON lesson.lessonID = junc_lesson_teacher.lessonFK
WHERE lessonID = {$id}//PHP $_GET id from a form
删除教师和学生协会的课程的最佳方式是什么? 谢谢你的意见

编辑:

我也尝试将此作为查询发送,但似乎不起作用:

DELETE FROM junc_lesson_teacher WHERE junc_lesson_teacher.lessonFK = {$id};
DELETE FROM junc_lesson_student WHERE junc_lesson_student.lessonFK = {$id};
DELETE FROM lesson WHERE lesson.lessonID = {$id};

如果要更改表的外键行为,则可以成功执行该查询。转到此处,不要在CREATETABLE语句中使用下面的关键字。这在ON DELETE NO ACTION和ON DELETE SET NULL中还有其他变体,我可能还不知道

关于删除级联


如果您已经构建了模式,这也适用于ALTERTABLE语句。但要小心,因为一旦删除了与其他表有许多关联外键关系的行。这些行也会从其他表中删除。

我从上面的查询中了解到,您希望从Lesson表中删除记录,并从student和teacher表中删除相关条目。所以我想你需要先从学生和教师表中删除记录,然后从课程表中删除记录,基本上和我想的一样,但是查询不起作用。。。请参阅编辑。您可以指定得到的错误吗??