纠正我在 mysql 触发器中的语法错误
Posted
技术标签:
【中文标题】纠正我在 mysql 触发器中的语法错误【英文标题】:Rectify my syntax error in mysql triggers 【发布时间】:2022-01-04 22:47:05 【问题描述】:所以我尝试创建一个 mysql 触发器(在更新之前),它将检查员工表的哪个属性正在更新,我将向另一个表“Update_Message”添加一条语句,该语句指示更新的属性。这是我的代码:
DELIMITER //
CREATE TRIGGER update_col
BEFORE UPDATE
ON Employee FOR EACH ROW
BEGIN
DECLARE Msg VARCHAR(100);
SET Msg = '';
IF NEW.eid!=OLD.eid THEN
SET Msg = CONCAT(Msg,"trying to update eid");
ELSE IF STRCMP(NEW.ename,OLD.ename) = 0 THEN
SET Msg = CONCAT(Msg,"trying to update ename");
ELSE IF STRCMP(NEW.eaddress,OLD.eaddress) = 0 THEN
SET Msg = CONCAT(Msg,"trying to update eaddress");
ELSE
SET Msg = CONCAT(Msg,"trying to update emonthlysalary");
DELETE FROM Update_Message;
INSERT INTO Update_Message (Message) VALUES (Msg);
END;
//
它指出了一个语法错误:ERROR 1064 (42000): You have an error in your SQL syntax;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 17 行的 '' 附近使用
请帮忙
【问题讨论】:
【参考方案1】:阅读https://dev.mysql.com/doc/refman/8.0/en/if.html
IF search_condition THEN statement_list [ELSEIF search_condition THEN statement_list] ... [ELSE statement_list] END IF
您缺少必须完成此语句的END IF
。
【讨论】:
感谢您的提示,但即便如此,最后的 INSERT 行仍显示错误。请帮帮我。 一个错误?我想知道错误是什么。或者你的代码现在是什么样子。但我不会猜测。以上是关于纠正我在 mysql 触发器中的语法错误的主要内容,如果未能解决你的问题,请参考以下文章