CREATE OR REPLACE FUNCTION update_task_budget() RETURNS trigger AS $update_task_budget$
DECLARE
taskid integer;
BEGIN
taskid := (SELECT project_taskid FROM gpm_project WHERE id = OLD.id);
UPDATE gpm_task SET task_budget = (SELECT sum(project_budget) FROM gpm_project WHERE project_taskid = taskid) WHERE id = taskid;
RETURN NULL;
END;
$update_task_budget$ LANGUAGE plpgsql;
CREATE TRIGGER update_task_budget AFTER INSERT OR UPDATE OR DELETE ON gpm_project
FOR EACH ROW EXECUTE PROCEDURE update_task_budget();
DECLARE
taskid integer;
BEGIN
taskid := (SELECT project_taskid FROM gpm_project WHERE id = OLD.id);
UPDATE gpm_task SET task_budget = (SELECT sum(project_budget) FROM gpm_project WHERE project_taskid = taskid) WHERE id = taskid;
RETURN NULL;
END;
$update_task_budget$ LANGUAGE plpgsql;
CREATE TRIGGER update_task_budget AFTER INSERT OR UPDATE OR DELETE ON gpm_project
FOR EACH ROW EXECUTE PROCEDURE update_task_budget();