现在有这样一个问题
有2张表A表和B表,A表中的字段为id,a1,a2.
a1,a2为date数据类型。当向A表中插入数据后 就要比较a1和a2的日期大小,如果a1大于a2,那么就要向B表中插入数据,请问这个怎么实现,用oracle的触发器可以实现吗
请问具体怎么实现,能给个例子吗

解决方案 »

  1.   

    CREATE OR REPLACE TRIGGER XXX
    after insert on A for each row
    begin
    if :new.a1>:new.a2 then
       insert into B values(XXXX);
    end if;
    end;
    /
      

  2.   

    怎么会不行?是不是没给用户插入B表数据的权限?
    SQL> desc test;
     名称                                      空?      类型
     ----------------------------------------- -------- ----------------------------
     QQ                                                 VARCHAR2(10)
     A1                                                 DATE
     A2                                                 DATESQL> desc test2;
     名称                                      空?      类型
     ----------------------------------------- -------- ----------------------------
     NUM                                                NUMBER(10)SQL> select * from test;未选定行SQL> select * from test2;未选定行SQL> insert into test values('aaa',sysdate,sysdate-30);已创建 1 行。SQL> commit;提交完成。SQL> select * from test;QQ         A1         A2
    ---------- ---------- ----------
    aaa        09-5月 -07 09-4月 -07SQL> select * from test2;       NUM
    ----------
             1SQL> insert into test values('bbb',sysdate,sysdate+100);已创建 1 行。SQL> commit;提交完成。SQL> select * from test;QQ         A1         A2
    ---------- ---------- ----------
    aaa        09-5月 -07 09-4月 -07
    bbb        09-5月 -07 17-8月 -07SQL> select * from test2;       NUM
    ----------
             1SQL>
      

  3.   

    试过了 LS的没问题  正解
    LZ仔细看看权限那块 是不是用户权限问题