插入触发器操作时创建触发器语法错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入触发器操作时创建触发器语法错误相关的知识,希望对你有一定的参考价值。

我试图创建一个触发器,如果​​特定表列中有任何更改,则应在另一个表中创建事件。我正在使用以下sql查询

CREATE TRIGGER enabled_update BEFORE UPDATE ON useraccount 
FOR EACH ROW     
BEGIN
    IF (NEW.enabledAccount != OLD.enabledAccount) THEN
       INSERT INTO logEvents
       SET NEW.event = OLD.employeeID;
    END IF;
END;

但是当我尝试运行此查询时,我收到以下错误。查询错误(1064):第6行''附近的语法错误和查询错误(1064):第1行'END IF'附近的语法错误。我错了?

答案

使用DELIMITER命令,请参阅23.1 Defining Stored Programs

DROP TRIGGER IF EXISTS `enabled_update`;

DELIMITER //

CREATE TRIGGER `enabled_update`
  BEFORE UPDATE ON `useraccount`
FOR EACH ROW     
BEGIN
    IF (NEW.`enabledAccount` != OLD.`enabledAccount`) THEN
       INSERT INTO `logEvents`
       SET `event` = OLD.`employeeID`;
    END IF;
END//

DELIMITER ;

以上是关于插入触发器操作时创建触发器语法错误的主要内容,如果未能解决你的问题,请参考以下文章

当我尝试在 mysql 中创建触发器时出现语法错误

尝试使用触发器以将行插入另一个表时出现语法错误

mysql 触发器

警告:使用编译错误创建触发器?

如果存在 MySQL 触发器语法错误

您的 SQL 语法有错误...创建触发器时出错