簡體   English   中英

MySQL觸發器:使用條件語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM