2017-05-30 53 views
0

我的目标是创建触发器,在Task更新的情况下将更新Project中的值。每个任务都有估计的时间,项目有列存储平均估计时间的列。我想要的是如果更新了一个任务的估计时间,触发器将改变项目的平均时间。触发器将更新其他表更新

我想不出如何做到这一点,我已经拿出下面的代码,但它不工作。

CREATE OR REPLACE TRIGGER trig_task_update 
AFTER update 
ON Task 
FOR EACH ROW 
BEGIN 
    UPDATE Project p SET (avg_task_estimated_time) = (SELECT AVG(estimatedTime) FROM TASK t WHERE t.project_idProject= p.idProject) WHERE p.idProject = :NEW.project_idProject; 
END; 
/

更新上表TASK我收到错误后:

ORA-04091: table TASK is mutating, trigger/function may not see it 
+0

您能发布错误吗?一些样本数据和你的表格结构也可能有帮助。 –

回答