oracle-触发器练习(3)

2020-08-23 22:28

修改成绩

修改学号

删除

练习 3

插入或修改(修改课程号时)选课信息时,若该课程的选课人数已满,则不允许操作,并抛出相应的错误提示。

create or replace package pk_trigger is

tr_scnum smallint;--sc_number表中的当前选课数量 tr_sname student.sname%type;

tr_cno sc.cno%type;--记录正在更新的课程号 tr_newsno sc.sno%type;--记录更新后的学生号 tr_oldsno sc.sno%type;--记录更新前的学生号 end pk_trigger;

create or replace trigger tr_sc_BR_IU before insert or update on sc for each row begin

pk_trigger.tr_cno:=:new.cno; end;

create or replace trigger tr_sc_AL_IU after insert or update on sc declare

v_snumber smallint; v_scnt smallint; begin

--查询课程最大选课人数

select snumber into v_snumber from course where cno=pk_trigger.tr_cno; --查询当前选课人数

select count(sno) into v_scnt from sc where cno=pk_trigger.tr_cno; --如果选课人数已满,则抛出相应错误提示 if(v_snumber < v_scnt) then

raise_application_error(-20008,'课程'||trim(pk_trigger.tr_cno)||'选课人数已满!'); end if; end; 测试结果:


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

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

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

马上注册会员

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