oracle 插删改 触发器

问题描述

oracle 插删改 触发器

create or replace trigger TG_attend_417
after insert or delete or update on attend_417
for each row
begin
if inserting then
if :new.attendance = 'la' then update stud_417 set sum_evaluation = sum_evaluation-2;

elsif :new.attendance = 't' then update stud_417 set sum_evaluation = sum_evaluation-5;
else :new.attendance = 'le' then update stud_417 set sum_evaluation = sum_evaluation-1;
end if;
end if;
if deleting then
if :old.attendance = 'la' then update stud_417 set sum_evaluation = sum_evaluation+2;
elsif :old.attendance = 't' then update stud_417 set sum_evaluation = sum_evaluation+5;
else :old.attendance = 'le' then update stud_417 set sum_evaluation = sum_evaluation+1;
end if;
end if;
if updating then
if :new.attendance = 'la' then update stud_417 set sum_evaluation = sum_evaluation-2;
elsif :new.attendance = 't' then update stud_417 set sum_evaluation = sum_evaluation-5;
else :new.attendance = 'le' then update stud_417 set sum_evaluation = sum_evaluation-1;
end if;
end if;
end;
.
/
show errors;

请问哪里错了?

时间: 2024-08-30 13:10:55

oracle 插删改 触发器的相关文章

oracle 插删改 触发器 过程

问题描述 oracle 插删改 触发器 过程 5.建立触发器,当对考勤表Attend表进行相应插入.删除.修改时,对stud表的sum_evaluation 数值进行相应的数据更新. 6.建立过程,生成某班级某时段(起.止日期)的考勤汇总表class_attend中各字段值,并汇总相应班级,将考勤分值的汇总结果写入到class表中的sum_evaluation中. 如题.希望能给点提示或者提供写参考资料 解决方案 http://blog.csdn.net/indexman/article/det

oracle 触发器 插删改

问题描述 oracle 触发器 插删改 create or replace trigger TG_attend_417 before delete or insert or update on attend_417 for each row begin if inserting then update stud set sum_evaluation = sum_evaluation-2*(select count(*)from attend_417 where (attendance = 'la

代码-oracle数据库写触发器解决级联删除问题

问题描述 oracle数据库写触发器解决级联删除问题 请问写一个触发器,怎么在根据id删除商品时,用触发器删除这个商品对应的购物车表项,订单明细表,以及这个订单明细表对应的订单表,删除这个订单表时还要删除这个订单表中对应的其他明细表,谢谢了,最好能有点代码,求教各位了 解决方案 创建数据库时为了防止其他人不小心删除操作错误, 所有的外键都没有加级联删除.哪知,不知什么时候自己入了一批错误的数据进去,入库使用的是软件自动的,一下点错给自己带来无尽麻烦啊,删除就不好办了. 表间的关系比较复杂,数据量

oracle 触发器-求大神解答oracle数据库关于触发器集联删除的问题

问题描述 求大神解答oracle数据库关于触发器集联删除的问题 做期末项目,做到了触发器集联删除这块,我想删除course表(父表)里的数据,必须先删除teacou(子表)中的cid,cid与course里的id有外键关系.删除子表后我又不能找到父表里的id了,怎么办啊,请大神帮忙看看,谢谢啦! 解决方案 http://www.2cto.com/database/201212/178007.html

数据库设计-求大神解答oracle数据库关于触发器集联删除的问题

问题描述 求大神解答oracle数据库关于触发器集联删除的问题 做期末项目,做到了触发器集联删除这块,我想删除course表(父表)里的数据,必须先删除teacou(子表)中的cid,cid与course里的id有外键关系.删除子表后我又不能找到父表里的id了. select teaCou.cId from teaCou where teacou.tId=:old.id有时候查出来两个结果,select into语句不能用, 怎么办啊,请大神帮忙看看,谢谢啦! 解决方案 http://www.2

oracle如何利用触发器对物化视图刷新进行定制

物化视图的刷新其实和普通的SQL执行没有什么本质的区别,因此也可以通过在物化视图上创建触发器的方式,对刷新操作进行定制. 正好前两天有人在BLOG上问我,如果在物化视图添加一个时间戳列,并在物化视图更新的时候,自动维护这个列.其实很简单,通过触发器就可以达到这个目的: SQL> CREATE TABLE T (ID NUMBER PRIMARY KEY, NAME VARCHAR2(30)); 表已创建. SQL> INSERT INTO T SELECT ROWNUM, TNAME FROM

oracle中创建触发器的语法

创建触发器 创建触发器的一般语法是: CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER } {INSERT | DELETE | UPDATE [OF column [, column -]]} [OR {INSERT | DELETE | UPDATE [OF column [, column -]]}...] ON [schema.]table_name | [schema.]view_name [REFERENCING {OL

[Oracle] 如何使用触发器实现IP限制用户登录

在Oracle里,不像MySQL那样方便,可以直接在用户上进行IP限制,Oracle要实现用户级别的IP限制,可以使用触发器来迂回实现,以下就是示例,需要的朋友可以参考下   下面是一个触发器的例子: 复制代码 代码如下: create or replace trigger logon_ip_control after logon on database declare   ip STRING(30);   user STRING(30); begin SELECT SYS_CONTEXT('U

SqlServer实现类似Oracle的before触发器示例_MsSql

1. 插入数据前判断数据是否存在 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- =============================