(4)在Stu_Union中删除数据,练习级联删除。 DELETE
FROM STU_UNION WHERE SNO='35'
解决方案: CREATE TABLE SC(
CNO CHAR(4),SNO CHAR(5),GRADE INT PRIMARY KEY(CNO,SNO),
FOREIGN KEY (CNO) REFERENCES COURSE(CNO) ON DELETE CASCADE,
FOREIGN KEY (SNO) REFERENCES STU_UNION(SNO) ON DELETE CASCADE, )
删除成功
(5)在Course中删除数据,练习级联删除。 DELETE FROM course WHERE CNO='1'
(6)用alter table语句将SC表中的on delete cascade改为on delete restrict。重新插入SC的数据。重复本实验中的(4)、(5),观察结果,分析原因。
ALTER TABLE SC
DROP CONSTRAINT FK_SC_Sno; ALTER TABLE SC
ADD CONSTRAINT FK_SC_Cno FOREIGN KEY(Cno) REFERENCES Course(Cno) ON DELETE RESTRICT
(7)用alter table语句将SC表中的on delete cascade改为on delete set NULL。重新插入SC的数据。重复本实验中的(4)、(5),观察结果,分析原因。 alter TABLE SC
DROP CONSTRAINT FK_SC_CNO ALTER
ADD CONSTRAINT FK_SC_CNO FOREIGN KEY (CNO) REFERENCES COURSE(CNO) ON DELETE SET NULL
(二)、多重级联删除
(1)为了练习多重级联删除,建立Stu_Card表,包括card_id (char(14)),stu_id,remained_money (decimal(10,2))三列,令stu_id为参照Stu_Union表的外键,令card_id为其主键,并插入数据。
CREATE TABLE Stu_Card(
card_id char(14),sno char(5),remained_money decimal(10,2) primary key(card_id),
foreign key(sno)references stu_union(sno)
相关推荐: