请问我要在A表上建立一个触发器,目的就是当对A表插入一条语句的时候,计算含有b字段的记录有多少个,
然后把计算的结果赋给例外一条记录的c字段。
大虾门这个怎么写??

解决方案 »

  1.   


      1  CREATE OR REPLACE TRIGGER T_TT BEFORE INSERT ON TT FOR EACH ROW
      2  DECLARE
      3  V_CNT NUMBER;
      4  BEGIN
      5  SELECT COUNT(*) INTO V_CNT FROM TT WHERE ID2=:NEW.ID2;
      6  :NEW.ID3:=V_CNT;
      7* END;
    SQL> /触发器已创建SQL> INSERT INTO TT VALUES(1,2,2);已创建 1 行。
    SQL> SELECT * FROM TT;        ID        ID2        ID3
    ---------- ---------- ----------
             1          2          0SQL> INSERT INTO TT VALUES(2,2,2);已创建 1 行。SQL> SELECT * FROM TT;        ID        ID2        ID3
    ---------- ---------- ----------
             1          2          0
             2          2          1SQL> 
    SQL> DESC TT
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     ID                                                 NUMBER
     ID2                                                NUMBER
     ID3                                                NUMBER
      

  2.   

    谢谢啊
    怎么给分啊?
    我没多少分
    我还有个问题要问,不是说oracle的触发器是不能在当前变化表上做DML(insert,update,delete)的吗
    还有就是为什么我用after怎么不行,必须用before呢就是在执行前触发呢?