我再补充一下要求:我希望在直接删除从表B中记录B1时启动触发器B,但是如果记录B1是被级联删除的,触发器B1就不被启动

解决方案 »

  1.   

    使触发器无效:
    alter trigger tr1 disable;
      

  2.   

    to  njhart2003():
    在哪里设置啊?是不是在触发器里面直接写就可以了啊?
      

  3.   

    我设置如下:
    create or replace trigger ttt5_delete
      before delete on ttt5  
      for each row
    declare
     
      -- local variables here
    begin
      alter trigger ttt6_delete disable;
     
    end ttt5_delete;编译时有错:
    TRIGGER RADIUS.TTT5_DELETE 编译错误
    TRIGGER RADIUS.TTT5_DELETE 编译错误错误: PLS-00103: Encountered the symbol "ALTER" when expecting one of the following:
           
              begin declare exit for goto if loop mod null pragma raise
              return select update while <an identifier>
              <a double-quoted delimited-identifier> <a bind variable> <<
              close current delete fetch lock insert open rollback
              savepoint set sql execute commit forall
              <a single-quoted SQL string>
    行: 8
    文本: alter trigger ttt6_delete disable;
    怎么改啊?
      

  4.   

    在TRIGGER A返回一个FLAG=1,在TRIGGER B接收做为IN参数并进行判断。如果FLAG=1,则直接不执行TRIGGER B。偶是菜鸟,看见这个问题有点意思,并来说两句。不知上述方法可行否。。