mybatis删除单个数据存在外键出错 Cannot delete or update a parent row: a foreign key constraint fails...

出现这个错误的原因是你想删除的那条数据与你的数据库中另一个表有约束关系(就是一个是主键,一个是外键)

mybatis删除单个数据存在外键出错 Cannot delete or update a parent row: a foreign key constraint fails..._第1张图片mybatis删除单个数据存在外键出错 Cannot delete or update a parent row: a foreign key constraint fails..._第2张图片

比如说我的以上两个表,一个是学生选课表(course_student),一个是课程表(course_rush),约束为coursename,其中在课程表中coursename为主键,在学生选课表中course_rush为外键,当删掉课程表上的某一门课程时,这门课程如果被删除,那么在学生选课表上也需要删除与这门课有关的所有信息,如果只删一个表上的记录,就会报上面这个删除不成功的错误...

我的级联删除的写法(同时删除两个表中的相关联的记录):


        delete course_student,course_rush from course_student left join course_rush on course_student.teacherID = course_rush.teacherID where course_student.coursename=#{coursename}  

其中course_student和course_rush为数据库

这里还需要注意的是:在删除数据时需要先删除外键的数据,再删除主键的数据,所以这里的left join左边的course_student为外键的表,left join右边为course_rush为主键所在的表,如果位置相反仍会出错的.

 

本人mybatis新人小白,刚深入学不到几天,如果有更详细更正确的见解还望更正!

你可能感兴趣的:(mabits,ssm,级联删除)