日期:2014-05-17  浏览次数:21183 次

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;

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