--Trigger:
--顾名思义,new是新插入的数据,old是原来的数据
--insert只会有new,代表着要插入的新记录
--delete只会有old,代表着要删除的记录
--update由于执行的是先删除旧的记录,再插入新的记录,因此new和old都会有,且含义与上面的相同
--已有表examscore 表中总成绩应该等于期中成绩与期末成绩之和。
--现在希望写一个触发器 在期中成绩或期末成绩改变时 总成绩随之改变
--采取变量赋值的方法可以阻止变异表的事情,下面是例子
create table examscore(
学号 varchar2(4) not null,
姓名 varchar2(20),
课程代码 varchar2(4) not null,
课程名称 varchar2(30),
期中成绩 number(3) default 0,
期末成绩 number(3) default 0,
总成绩 number(3) default 0
);
/
insert into examscore values('001','王军','058','计算机',60,80,140);
commit;
create or replace trigger SumScoreTri
before insert or update on examscore for each row
declare
v_sum eaxmscore.总成绩%type;
begin
v_sum := :new.期中成绩 + :new.期末成绩;
if(v_sum <> :new.总成绩 then
:new.总成绩 := v_sum;
end if;
end;
/
update examscore set 期末成绩=60 where 姓名='王军';
commit;
分享到:
相关推荐
这个资源是“ORACLE中触发器和存储过程介绍”资源的配套代码。大家可以两个同时下载。
利用oracle 系统触发器防止用户使用drop table 或truncate table 命令。
oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例
oracle_触发器的种类和触发事件,很详细!
调试oracle触发器文档,自己整理的,不懂的可以聊系我
介绍数据库触发器的PPT。内容包括:存储过程的创建与使用;存储过程的查看、编辑和删除;触发器的创建与使用;触发器的查看、编辑、重命名和删除
这是个PPT,我自己根据平时的使用经验写的,由于PPT是配合讲解的,所以可能有很...文件包括ORACLE和数据库的关系。 存储过程结构,IN,OUT,IN OUT参数区分。触发器的使用。 小弟第一次做,有不完善的地方请多给些意见。
从Oracle8i开始,Oracle引入了特殊的触发器,这些触发器并不是和特殊的DML事件相关联的(DML事件,如,INSERT,UPDATE和DELETE)。这些系统级别的触发器包括数据库启动触发器,DDL触发器和最终用户登陆/注销触发器。...
Oracle Form 触发器的执行顺序
1、行级触发器不支持 ...所以想要触发器对自身表数据做修该,则用行级触发器得到 :new 和 :old对象中的相关数据,然后将这样的数据保存到 package中,然后在语句级触发期中调用 package包中保存的数据,进行更新操作
很详细的oracle创建触发器的例子
oracle insert数据成功之后调用触发器,触发器调用存储过程,存储实时调用java http
在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。 触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是...
oracle中记录用户登录信息的触发器的例子,有具体操作过程,包括错误信息及解释,这个例子是自己为某企业的oracle安全管理的具体例子
个人亲测oracle触发器调用java程序
oracleDML触发器.ppt
oracle超级触发器,可以实现各种功能
oracle 触发器方式实现行ID自增加介绍的很详细! 大家好好学习啊
oracle 增加序列 触发器 全过程 sql文件只需更换表名