用new试试
if :new.buildid is null then

解决方案 »

  1.   

    猫咪觉得可能要把before insert 改成after insert
      

  2.   

    如果不是一个事务的话,你执行commit了吗.
    没有任何错误吗?
      

  3.   

    加了commit出现错误,触发器中不能有commit啊
      

  4.   

    不是,是insert into t_build values('a',121,'a','a');
    后commit;
      

  5.   

    应该是不能用OLD的,新插入的数据怎么会有OLD呢,
    create or replace trigger temp_trig
      after insert on t_Test
      for each row
    begin
      if :new.col1 is null then
        insert into t_test1 values('a','01');
      else
        insert into t_test1 values('a','b');  
      end if ;
    end temp_trig;
    我机器有这个临时表,我试了一下这样是可以 的!你再稍微改动一下,应该没有什么问题的
      

  6.   

    ft我要晕死了
    create or replace trigger temp_trig
      AFTER insert on t_build
      REFERENCING OLD AS OLD NEW AS NEW
      for each row
    begin
        insert into t_temp values('a',:new.buildid,'a','a');  
    end temp_trig;
      

  7.   

    create or replace trigger temp_trig
      before insert on t_build
      for each row
    begin
      if :new.buildid is null then
        insert into t_temp values('a',1,'a','a');
      else
        insert into t_temp values('a',:new.buildid,'a','a');  
      end if ;
    end temp_trig;insert into t_build values('a',121,'a','a');
    可是t_temp里头没有数据。
      

  8.   

    CREATE OR REPLACE TRIGGER NEWSCDD.TRY
    AFTER INSERT 
    ON NEWSCDD.TRY1
    REFERENCING OLD AS OLD NEW AS NEW
    FOR EACH ROW 
    BEGIN 
    insert into try2 values(:new.a1,:new.a2); 
    END;给你讲了半天了,你怎么死也搞不懂!!
    ft,给你个最简单的。
      

  9.   

    两张表try1和try2,都是2个字段a1,a2
      

  10.   

    create or replace trigger temp_trig
      before insert on t_build
      for each row
    begin
      if :new.buildid is null then
        insert into t_temp values('a',1,'a','a');
      else
        insert into t_temp values('a',:new.buildid,'a','a');  
      end if ;
    end temp_trig;/
    select * from t_temp;
    insert into t_build values('a',121,'a','a');
    select * from t_temp;
    把上面的数据执行一下,应该没有问题的,我考虑是不是你改动后没有编译呀!这么简单的东西不会有什么问题的啦!
      

  11.   

    你是不是没有更新数据的权限啊,你用触发器所有者登录数据库,然后运行
    insert into t_temp values('a',1,'a','a');
    commit;
    再看看有没有数据