2017-12-28 4 views
0

MySQL의 트리거 얻을 수 있지만, 제대로하지 않을 때 CURRENT_TIMESTAMP와 finished_date를 업데이트하는 방법 일. 하나는MySQL의 트리거 품목 수량이 품목 수량 난 다음 트리거를 시도 0</strong></p> <p><strong>을 얻을 때 CURRENT_TIMESTAMP와 항목 표에 finished_date을 업데이트하는 방법 0

DELIMITER $$ 
CREATE TRIGGER `quantityTrigger` AFTER change ON `items.finished` FOR EACH ROW BEGIN 
UPDATE items i 
IF(i.quantity = 0) THEN 
SET i.finished_date= CURRENT_TIMESTAMP(Date) 
WHERE i.item_id=NEW.item_id; 
    END IF; 
END 
$$ 
DELIMITER ; 
+0

이 작동합니까? 정확한 흐름을 알려주십시오. 뭐하고 싶어? –

답변

0

같은 테이블 자체에서 작업하는 경우이 UPDATE ON에서 실행하는 업데이트 명령을 사용 할 필요가 제발 도움이되지 않습니다.

이처럼 수행

DELIMITER $$ 
CREATE TRIGGER quantityTrigger 
BEFORE UPDATE ON items FOR EACH ROW 
begin 

    IF(new.quantity = 0) THEN 
    new.finished_date = now(); 
    END IF; 

END; 
$$ 
DELIMITER ; 

그냥 문제를 시뮬레이션하기 위해 ON BEFORE UPDATE 또는 AFTER UPDATE ON으로 변경합니다.

관련 문제