2017-12-29 7 views
-1

테이블에 대한 업데이트 트리거를 생성하려고합니다. 트리거가 만들어졌지만 열 finish을 업데이트하면 테이블이 변경됩니다. 업데이트 전의 오라클 SQL 테이블 변경 트리거

이 트리거가 나에게 '돌연변이 표'오류를 제공하고 지금까지 내가 그것을 고칠 수 없었습니다 내 코드

CREATE OR REPLACE TRIGGER SET_COST BEFORE UPDATE OF finish ON PAY 
    FOR EACH ROW 

    BEGIN 

    UPDATE PAY 
    SET PAY.COST = (finish-start) * 20000 
    WHERE PAY.ID=:new.ID; 

    END; 

입니다. 어떠한 제안 ? 감사합니다

+0

그대로 오라클이 돌연변이 테이블을 제외하고 실패 트리거에 대한에 StackOverflow에 대한 답변 수십있다. [그 중 일부를 읽지 않는 이유는 무엇입니까?] (https://stackoverflow.com/search?q=oracle+mutating+table+trigger) – APC

답변

2

우선, 당신은 전혀 그것을해서는 안됩니다. 필요시 언제든지 쉽게 계산할 수있는 값을 저장하는 용도는 없습니다. 질문의

로 : 없음 UPDATE :

begin 
    :new.cost := (:new.finish - :new.start) * 20000; 
end; 
+0

@Littlefoot, 그 작업, 나는 같은 코드를 시도했지만 매우 감사합니다. 나는 단지 = 사용하지 않는다 : =, 나는 더 조심해야한다. – Hilfit19