CREATE  OR  REPLACE  TRIGGER  F_Init_MainTime  
   AFTER  INSERT  ON  FacilityName      
   FOR  EACH  ROW  
 
BEGIN  
   insert into tb_else values(:new.id,:new.name...);
END  F_Init_MainTime;  
/

解决方案 »

  1.   

    bzszp,我还有个问题要问题一下,我写了下面这个触发器:CREATE OR REPLACE TRIGGER Trg_BeforeMaintainType
      BEFORE UPDATE ON MaintainType  
      FOR EACH ROWDECLARE 
           
    BEGIN
    /* 限制用户对主键的修改 */  IF rtrim(ltrim(:new.MaintainID)) <> rtrim(ltrim(:old.MaintainID)) THEN
         raise_application_error(-20076,'设备检修类型表的主键不能修改!');
      END IF;
    END Trg_BeforeMaintainType; 但是我修改主键的时候,却出现了如下的错误:---------------------------
    Error
    ---------------------------
    ORA-20076: 设备检修类型表的主键不能修改!
    ORA-06512: 在"INSCES4.TRG_BEFOREMAINTAINTYPE", line 8
    ORA-04088: 触发器 'INSCES4.TRG_BEFOREMAINTAINTYPE' 执行过程中出错View program sources of error stack?
    ---------------------------
    是(Y)   否(N)   
    ---------------------------不知道错在那里了,希望你能在指点指点我!!谢谢
      

  2.   

    这部正好符合你的要求吗?你在触发器中的
    IF  rtrim(ltrim(:new.MaintainID))    <  >  rtrim(ltrim(:old.MaintainID))  THEN  
             raise_application_error(-20076,'设备检修类型表的主键不能修改!');  
       END  IF;  就是当修改主键的时候raise 这个错误ora-20076
      

  3.   

    bzszp,但是在调试的时候出现了错误,说是触发器执行过程错误。我是为了获取这个错误,但没有想到触发器会出错啊。到底是怎么回事啊??
      

  4.   

    尤其是错误:
       ORA-06512: 在"INSCES4.TRG_BEFOREMAINTAINTYPE", line 8
       ORA-04088: 触发器 'INSCES4.TRG_BEFOREMAINTAINTYPE' 执行过程中出错
    不是我期望的,这搞得我莫名奇妙的。
      

  5.   

    bzszp那这么目的该怎么解决啊。还有我只要在触发器中用类似: raise_application_error(-20076,'设备检修类型表的主键不能修改!');  的语句,都会出现上面触发器运行的错误。
      

  6.   

    CREATE  OR  REPLACE  TRIGGER  F_Init_MainTime  
       AFTER  INSERT  ON  FacilityName      
       FOR  EACH  ROW  
     
    BEGIN  
       insert into tb_else values(:new.id,:new.name...);
    END  F_Init_MainTime;