create or replace trigger trig_del
  before delete on sendedmsg  
  for each row
begin
  insert into message
  select * from sendedmsg where sendedmsg.id=:old.id;
end trig_del;请各位帮忙,这个触发器为什么编译能通过,但触发的时候却提示提示sendedmsg发生了变化,触发器/函数不能读取,这是为什么,请各给帮忙,应该怎么写才对啊

解决方案 »

  1.   

    主体这样写不对的,应该该成
     insert into message(id,字段1,字段2....) values(:old.id1,:old.字段1,:old.字段2....)
      

  2.   

    不知你的意思是不是想把要删除的数据保存到表message中,如果是这样的话应改为:
    create or replace trigger trig_del
      before delete on sendedmsg  
      for each row
    begin
      insert into message(id,字段1,...) values(:old.id1,:old.字段1,...);
    end trig_del;
    不能写成插入结果集的形式.