Ant*_*ony 2 mysql mysql-workbench
我正在尝试让这个 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 ;
Run Code Online (Sandbox Code Playgroud)
奇怪的是(我把它留在这里);//实际上是在 Mysql 文档中作为示例给出的,但是当我运行它时出现错误(https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax. html)。
我在 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 ;
Run Code Online (Sandbox Code Playgroud)
差异:
IF必须结束于END IF;.BEGIN... END(除非您需要在块中使用 DECLARE)。它已经是一个复合语句,并且接受块中的语句列表。END。也就是说,END//在这个例子中。| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |