0
직원의 급여를 업데이트해야하는 새 트리거를 만들었습니다. 테이블 지불에서 2 개의 값 (현금 및 월)을 가져 와서 "how_much_to_pay"컬럼으로 나눕니다. 트리거에서 테이블을 업데이트 할 수 없습니다.
나는 주제 바라 보았다 : MySQL triggers cannot update rows in same table the trigger is assigned to. Suggested workaround?하지만 그들은 한 테이블에서만 사용하기 때문에 그것은 나를 도와 didin't 그들은 문제없이 "새로운"넣을 수 있습니다.
create trigger pay_out before insert on `payment_out`
for each row
then
UPDATE `payment_out` o
INNER JOIN payment p ON p.id_1 = o.id_1 AND o.id2 = p.id2
SET o.`how_much_to_pay` = p.cash/p.months;
end;
$$
다음
있는 테이블 :
table payment_out
id1
id2
how_much_to_pay
table payment
id1
id2
cash
months
그리고 오류 자체 : 여기
내 트리거입니다1442 - Can't update table payment_out in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
글쎄,이 방법이 효과가 있지만 "지불 할 금액"이 NULL이고 심지어 현금 = 8000, 월 = 8 일 수도 있습니다. – trinny
'p.cash' 또는'p.months' 중 하나가 null 일 수 있습니다. 없는. 트리거에서 SELECT를 실행하고 올바른 값을 WHERE 조건에 추가하십시오. 그 결과는 무엇입니까? – Devart
내가 알아 차렸을 때 나는 그것을 0.00으로 바꿨다. – trinny