有两个无关联的表(都和第三个表关联),我要在 delete 第二个表中的一行时将这一行中的一个数据加到第一个表的某行的一个数据.为此要写一个 trigger ,但是不知道是该用 before 还是 after . 用 before 吧,根本都还不知道要 delete 哪一行, 用 after 吧, 又不能取出这一行的那个数据...例如下列表:table A(ID int, num_a int, id_c int);table B(ID int, num_b int, id_c int);table C(id_c int);请高手指点该如何写这个 trigger

解决方案 »

  1.   

    很简单。你要知道:delete的触发器来说,不管before 还是 after,都可以用OLD来访问被删除的数据。
    比如, OLD.ID.
      

  2.   

    有没有懂的啊,说的详细些,我用了OLD.ID 可是问题出错,不知道这个OLD是怎么用的
      

  3.   

    CREATE TRIGGER BtoA 
    AFTER DELETE ON B   //这里也可以用BEFORE DELETE ON B
    FOR EACH ROW   
    BEGIN   
      UPDATE A 
      SET A.COLA=OLD.COLB
      FROM A,OLD
      WHERE A.ID_C=OLD.ID_C
    END;