我有两个表,分别是departements表和students表,在我的外键上使用此模式
departements.id = students.departement_id
我试图删除我的一个departement.id但它返回一个错误
#1452 - Cannot add or update a child row: a foreign key constraint fails (`u1556075_sia_uiii2`.`#sql-f847_33d3d1a`, CONSTRAINT `departements_fk2` FOREIGN KEY (`id`) REFERENCES `students` (`departement_id`)
老实说,我不知道是什么原因导致了这种情况,因为我在student上外键就是这样的
ALTER TABLE `students` ADD CONSTRAINT `students_fk2` FOREIGN KEY (`departement_id`) REFERENCES `departements`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
1条答案
按热度按时间vd2z7a6w1#
如果
students
中有一个或多个行引用了departments
中行的部门ID,则不能删除该行。原因是,如果要删除departments
中的行,则students
中的某些行将引用数据库中不再存在的部门ID,这将违反外键约束。必须首先更新
students
表,以更改与要删除的系相匹配的行的系ID。要么将这些学生更改为其他系,要么将department_id设置为NULL。或者,我认为删除students
中的行也可以,但我认为您不想这样做。