有三张表结构入下:
A                       B                         C
ID   STATUS              ID    PRICE               ID    num
当表A的STATUS值改为1的时候,把C表的NUM加上B表的PRICE,条件是A B两个表的ID号相等。
当表A的STATUS值改为0的时候,把C表的NUM减去B表的PRICE,条件相同。

解决方案 »

  1.   

    create or replace trigger trg_a after update on a
    for each row
    begin
      if :new.status=1 then
         update c set c.num=(select c.num+b.price from b where b.id=c.id) where c.id=:new.id;
      elsif :new.status=0 then
         update c set c.num=(select c.num-b.price from b where b.id=c.id) where c.id=:new.id;
      end if;
    end trg_a;
    /
      

  2.   

    对不起,INSERT时候也要变,那应该怎么写。
      

  3.   

    ...insert or update on a
    ...
      

  4.   

    update c set c.num=(select c.num-b.price from b where b.id=c.id),这个SELECT如果查出多条那肯定就错了吧,应该怎么改,id如果是主健,就没问题了。