数据库 实验9 数据控制(完整性) 联系客服

发布时间 : 星期三 文章数据库 实验9 数据控制(完整性)更新完毕开始阅读6e67a66131b765ce0508148b

(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)