oracle-触发器练习

2020-08-23 22:28

触发器课堂练习1

1、 当向SC表插入数据时,修改(或添加)SC_NUMBER(包括学生学号和选课门数两列)

表格中的数据。

create or replace trigger tr_sc_AR_I after insert on sc for each row begin

update sc_number set scnum=scnum+1 where sno=:new.sno; if sql%notfound then

insert into sc_number values(:new.sno,1); end if; end; 测试结果:

2、 当删除SC表中数据时,修改(或添加)SC_NUMBER中的数据。 create or replace trigger tr_sc_AR_D after delete on sc for each row begin

update sc_number set scnum=scnum-1 where sno=:old.sno;

select scnum into pk_trigger.tr_scnum from sc_number where sno=:old.sno; if(pk_trigger.tr_scnum=0) then

delete from sc_number where sno=:old.sno; end if; end; 测试结果:

3、 当修改SC表中数据时,若修改的是学号,则对应修改SC_NUMBER表中的选课门数,否则打印“某某

(学生姓名)的学生选课信息已经修改”信息。 create or replace trigger tr_sc_AR_U after update on sc for each row

begin

if(:old.sno = :new.sno) then

select sname into pk_trigger.tr_sname from student where sno=:new.sno; dbms_output.put_line(pk_trigger.tr_sname||'的学生选课信息已经修改,由原课程'|| trim(:old.cno)||'修改为新课程'||trim(:new.cno)); end if;

if(:old.sno <> :new.sno) then

update sc_number set scnum=scnum+1 where sno=:new.sno; if sql%notfound then

insert into sc_number values(:new.sno,1); end if;

update sc_number set scnum=scnum-1 where sno=:old.sno;

select scnum into pk_trigger.tr_scnum from sc_number where sno=:old.sno; if(pk_trigger.tr_scnum=0) then

delete from sc_number where sno=:old.sno; end if; end if; end; 测试结果:

触发器课堂练习 2

1、 修改STUDENT表数据时,限制不能修改学生的系别(不能修改CS系学生的系别)。 create or replace trigger tr_student_BR_U1 before update of sdept on student for each row

when (old.sdept='CS') --old前没有\ begin

raise_application_error(-20001,'不能修改CS系学生的系别!'); end; 测试结果:

2、 插入课程时,课程号以‘S’开头的课程的学分不能低于3分。 create or replace trigger tr_course_BR_I before insert on course for each row

when (new.credit<3 and new.cno like 'S%') begin

raise_application_error(-20002,'S开头的课程学分不能低于3分!'); end; 测试结果:


oracle-触发器练习.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2012年全国高考理综试题及答案-北京卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: