比方我的触发器为以下内容:
CREATE OR REPLACE TRIGGER TRIGGER_YSC_HUIZONGBAOBIAO
AFTER INSERT OR UPDATE OR DELETE ON GL_BAL
FOR EACH ROW
BEGIN 
DELETE FROM GL_BAL WHERE ACCOUNT_ID='10' AND CO_CODE='C000002';
INSERT INTO GL_BAL 
SELECT * FROM YSC_HZBB;
END;如果我不想对整个GL_BAL表操作,而只是想变化GL_BAL表中字段FISCAL(期间)在变化的内容中FISCAL含有的值
例如:假设GL_BAL 中增加了一条信息,增加的信息中FISCAL字段的值为7,那么我的删除语句就变为:
DELETE FROM GL_BAL WHERE ACCOUNT_ID='10' AND CO_CODE='C000002' AND FISCAL='7'
插入语句也相应变为:INSERT INTO GL_BAL SELECT * FROM YSC_HZBB WHERE FISCAL='7'高手指点一下如何取能取出条件FISCAL的值啊

解决方案 »

  1.   

    你是否写错了?触发器建在GL_BAL表上,在触发器中却又对GL_BAL表删除插入?
      

  2.   

    没有啊 就是这样的 条件写的 不对 
    CREATE   OR   REPLACE   TRIGGER   TRIGGER_YSC_HUIZONGBAOBIAO 
    AFTER   INSERT   OR   UPDATE   OR   DELETE   ON   GL_BAL 
    FOR   EACH   ROW where  ACCOUNT_ID<> '10 ' or CO_CODE<> 'C000002 'BEGIN   
    DELETE   FROM   GL_BAL   WHERE   ACCOUNT_ID= '10 '   AND   CO_CODE= 'C000002 '; 
    INSERT   INTO   GL_BAL   
    SELECT   *   FROM   YSC_HZBB; 
    END;加上一个这样的条件应该可以了吧 
      

  3.   

    能这样写吗?不能对自身操作啊,可以改变new或者 old 的值来达到你的目的,
    参考下:
    CREATE OR REPLACE TRIGGER MOBILE.WORKLOG_test
    BEFORE INSERT
    ON MOBILE.WORKLOG 
    REFERENCING NEW AS New OLD AS Old
    FOR EACH ROW
    WHEN (
    is_private='Y'
          )
    BEGIN
      -- your code here
      null; 
    END;
      

  4.   

    楼上 你说的我还是没有懂啊  is_private= 'Y '  是什么意思 , 不好意思 偶菜鸟