我試圖讓這個 mysql 觸發器在 mysql 作業臺中作業。當出現錯誤時,它會很高興地告訴我,但是當一切正常時它不會運行。我已經運行了一個show triggers查詢,但沒有回傳任何內容。運行 v8.0.28。
delimiter //
CREATE TRIGGER add_job_item
AFTER INSERT ON estimate_line
FOR EACH ROW
BEGIN
IF (NEW.CoreTypeID = 3 AND NEW.CoreResourceID IS NOT NULL) THEN BEGIN
INSERT INTO job_items (EstimateLineID) VALUES (NEW.EstimateLineID);
END; # END IF; here doesn't work
END;// # I have tried END; END;//
delimiter ;
奇怪的是(我把它留在這里);//實際上是作為 Mysql 檔案中的一個例子給出的,但是當我運行它時出現錯誤(https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax. html ).
uj5u.com熱心網友回復:
我在 MySQL 8.0.31 上對此進行了測驗,它可以作業:
delimiter //
CREATE TRIGGER add_job_item
AFTER INSERT ON estimate_line
FOR EACH ROW
BEGIN
IF (NEW.CoreTypeID = 3 AND NEW.CoreResourceID IS NOT NULL) THEN
INSERT INTO job_items (EstimateLineID) VALUES (NEW.EstimateLineID);
END IF;
END//
delimiter ;
差異:
IF必須以 結束END IF;。- 您不需要在 IF 塊中使用
BEGIN...END(除非您需要在塊中使用 DECLARE)。它已經是一個復合陳述句,并接受塊中的陳述句串列。 - 您確實需要在最后一個
END. 也就是說,END//在這個例子中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526641.html
