不应该在这里处理
应该在执行insert 语句之前判断

解决方案 »

  1.   

    AFTER  INSERT
    看一下
      

  2.   

    1. 在Table上加Constraint,限制该列必须满足条件
    2. 在Trigger中Raise Exception,造成Insert语句执行失败
      

  3.   

    insert into (select * from t where col1<>'s') a values ... 
    看看可不可以
      

  4.   

    触发器根本不能解决此问题,不管FLAG = 'S'条件是否执行.
    触发器只能影响插入结果,不能阻止其它插入
      

  5.   

    可以这样解决,copy原表为一个副本,以后访问哪个表
    CREATE OR REPLACE TRIGGER MYTABLE_TRIGGER
    BEFORE INSERT
    ON MYTABLE
    FOR EACH ROW
    BEGIN
      IF :NEW.FLAG = 'S' 
        insert into MYTABLE_copy values(;new.col_name,....);
      
      END IF
    END;