[英]MySQL Triggers: Using a conditional statement
我現在想做的是,在同一觸發器中,如果特定字段發生更改,請更新特定字段。 因此,當step5_complete從0更改為1時,我想將date_completed字段更新為當前日期時間。
我目前收到有關SQL語法錯誤的錯誤消息,但它說
在第13行的“ //”附近
這是
SET NEW.percent_complete = ( NEW.step1_complete + NEW.step2_complete + NEW.step3_complete + NEW.step4_complete + NEW.step5_complete ) * 20;
這是我完整的觸發器
DROP TRIGGER IF EXISTS completed_part_after_update ;
DELIMITER //
CREATE TRIGGER completed_part_after_update
BEFORE UPDATE
ON completed_part FOR EACH ROW
BEGIN
IF NEW.step5_complete <> OLD.step5_complete THEN
SET NEW.date_completed = NOW();
END IF;
SET NEW.percent_complete = ( NEW.step1_complete + NEW.step2_complete + NEW.step3_complete + NEW.step4_complete + NEW.step5_complete ) * 20;
END; //
您的最后一條陳述看起來不對。 它應該是
END//
DELIMITER ;
也就是說,觸發器的主體應該看起來像
DELIMITER //
CREATE TRIGGER completed_part_after_update
BEFORE UPDATE
ON completed_part FOR EACH ROW
BEGIN
IF NEW.step5_complete <> OLD.step5_complete THEN
SET NEW.date_completed = NOW();
END IF;
SET NEW.percent_complete = ( NEW.step1_complete + NEW.step2_complete + NEW.step3_complete + NEW.step4_complete + NEW.step5_complete ) * 20;
END//
DELIMITER ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.