新人求问,如何一条语句删除父表和子表的一条相同数据

时间:2021-10-27 21:42:09
course(cno,cname,cpno)  sc(sno,cno,grade)
问题就是,我现在要删除course里面,cno=1的元组,但是sc里面也有cno=1的元组,怎么办啊,一定要先删除sc表里面的然后再去删除course里的吗?求问,谢谢了,最好有sql语句

7 个解决方案

#1


直接删除course里边cno=1的有什么问题吗?你是想级联删除是吗?
就是在删除coutse数据的时候sc里的数据也删除了?设置外键级联

试试这个
alter table sc add constraint fk_ID foreign key (cno) references course(cno) on delete cascade;

#2


1、级联删除
2、触发器
3、分两条语句写

#3



--course(cno,cname,cpno)  sc(sno,cno,grade)
delete from course where cno='01'
delete from sc        where cno='01'

#4


1、现在你的问题是这两张表中cno字段(具有唯一性约束)外键关联
2、可以通过设置级联删除完成这项操作

SQL语句:Alter table course add constraint fk_course_sc_sno foreign key(sno) references sc(sno) on update cascade on delete cascade;

#5


我也不太懂ccc华789

#6



delete from sc        where cno='01'
delete from course where cno='01' 

#7


父节点的数据删除之后,要把对应的所有子节点的数据都删除,需要查找出有多少个子节点,然后逐一删除。

#1


直接删除course里边cno=1的有什么问题吗?你是想级联删除是吗?
就是在删除coutse数据的时候sc里的数据也删除了?设置外键级联

试试这个
alter table sc add constraint fk_ID foreign key (cno) references course(cno) on delete cascade;

#2


1、级联删除
2、触发器
3、分两条语句写

#3



--course(cno,cname,cpno)  sc(sno,cno,grade)
delete from course where cno='01'
delete from sc        where cno='01'

#4


1、现在你的问题是这两张表中cno字段(具有唯一性约束)外键关联
2、可以通过设置级联删除完成这项操作

SQL语句:Alter table course add constraint fk_course_sc_sno foreign key(sno) references sc(sno) on update cascade on delete cascade;

#5


我也不太懂ccc华789

#6



delete from sc        where cno='01'
delete from course where cno='01' 

#7


父节点的数据删除之后,要把对应的所有子节点的数据都删除,需要查找出有多少个子节点,然后逐一删除。