我有两个表teacher
和student
。不同的老师有学生。当我删除一位老师时,与该老师有关的学生也应删除。
学生在表教师中具有与TeacherId相关的StudentTeacherId。
答案 0 :(得分:1)
有两种方法:
如果您不使用ORM:
在SQL Server中根据外键约束定义级联删除,然后只需要在Teacher
表上发送删除查询。
创建一种方法,该方法将根据老师吸引学生,然后删除他们,然后删除老师。
如果您使用的是ORM:
1'在EF(我猜是在其他ORM中)中,您可以指定级联删除,因此ORM将为您处理删除教师的情况。
2'使用ORM,获取学生的实体,将其删除,然后删除教师
我认为最适合您的是选项1,因为您没有提到任何ORM。在这种情况下,请阅读以下内容:How do I use cascade delete with SQL Server?
答案 1 :(得分:0)
您将需要删除当前的FK约束,并添加一个启用了ON DELETE CASCADE的新约束。
示例:
ALTER TABLE Test
ADD CONSTRAINT fk_teacher
FOREIGN KEY (teacherID)
REFERENCES Test2 (teacherID)
ON DELETE CASCADE;
从教师表中删除一行后,它将删除学生中与您有关系的所有行