《数据库原理与应用》作业(1-1)

四、触发器

1、触发器完整性控制验证

(1)创建下面的触发器,用于控制添加course信息时,保证cpno是已经存在的课程号。

delimiter //
create trigger trig2
before insert
on course
for each row
begin
If new.cpno is not null then
select count(*) into @icount from course where cno=new.cpno;
If @icount=0 then
signal sqlstate '45000' set message_text ='你输入的先修课号不存在!';
end if;
end if;
End//
delimiter ;

(2)执行下面两条语句,查看结果,并思考不成功语句原因。

insert into course values('090901','数据库设计与开发','999888');
insert into course values('090902','智能金融概论',null);

原因:第一句执行失败,999888不在已有的课程号里面,第二句执行成功,没有设置先修课号,只是增加了一个课程信息。

2、触发器级联操作验证

(1)创建一个学生选课统计表(选课数量,总学分)

 
 

你可能感兴趣的:(数据库原理与应用,数据库,mysql,sql)