读书人

oracle中创建触发器异常

发布时间: 2012-06-30 17:20:12 作者: rapoo

oracle中创建触发器错误,
创建INSERT触发器t_inst_stu:在学生表(student)中每新增一名学生,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动加1。
这是我的代码
create or replace trigger t_inst_stu after insert on student
referencing old as old_value
new as new_value
for each row
when (new_value.clsno is not null)
begin
update class set c_total=c_total+1 where clsno=:new_value.clsno;
end;
现在的问题是当执行插入语句时,没反应,求大神指导。

[解决办法]
这个触发器应该是无效的吧 select status from user_objects t where t.object_name='T_INST_STU' 看看状态是什么。
另 试试

create or replace trigger t_inst_stu after insert on student
referencing old as old_value
new as new_value
for each row
case when new_value.clsno is not null then
begin
update class set c_total=c_total+1 where clsno=:new_value.clsno;
end case;
end ;
[解决办法]
我改成
create or replace trigger t_inst_stu after insert on student

for each row
begin
case when :new.clsno is not null then

update class set c_total=c_total+1 where clsno=:new.clsno;
end case;
end;

你再试试。 这样好像可以。

读书人网 >oracle

热点推荐