以下就是我的触发器,望高人帮我看下,是触发器有错,还是其他什么问题?
我在网上看到是说改下“max_stack_depth = 2MB”这个,可我改成4M了,还是报错啊?-- Function: auto_i_sy()-- DROP FUNCTION auto_i_sy();CREATE OR REPLACE FUNCTION auto_i_sy()
  RETURNS trigger AS
$BODY$
DECLARE
        vsalaryid bigint ;
    BEGINselect sum(sy.salaryid) into vsalaryid from tsalary sy where sy.yueFen=NEW.zhangQi and sy.enterpriseid=NEW.enterpriseid AND sy.staffid=NEW.staffid;
update tinsurance  set salaryid=vsalaryid where enterpriseid=NEW.enterpriseid AND staffid=NEW.staffid and zhangQi=NEW.zhangQi;
return null;
       
    END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION auto_i_sy() OWNER TO postgres;

解决方案 »

  1.   

    你的CREATE TRIGGER 语句是什么?
      

  2.   

    CREATE TRIGGER go_auto_i_sy
      AFTER INSERT OR UPDATE
      ON tinsurance
      FOR EACH ROW
      EXECUTE PROCEDURE auto_i_sy();
      

  3.   

    没看懂;RETURNS trigger函数返回类型可以是触发器??我在CREATE FUNCTION语法里没看到这样的写法,狼头哥讲解下啊。
      

  4.   

    自己解决了,原本来是INSERT OR UPDATE触发后死循环了,改成INSERT 就行了。