2017-05-30 58 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

您能發佈錯誤嗎?一些樣本數據和你的表格結構也可能有幫助。 –

回答