【发布时间】:2021-08-27 04:12:08
【问题描述】:
这是我第一次尝试创建 MySql 触发器,但遇到了无法识别的语法错误。我试图让触发器在更新行时插入计算值。下面是我的代码,但是当我尝试执行它时,我不断收到语法错误,而且我看不到错误在哪里。有人可以看看,我做错了什么?
DROP TRIGGER ins_cop_dhw;
CREATE TRIGGER ins_cop_dhw BEFORE INSERT ON `2017010001_data`
FOR EACH ROW
BEGIN
IF (NEW.`_007E` = 1 AND `_00A2` > 0) THEN
SET NEW.`_00B7` = NEW.`_0096` / NEW.`_00A2`;
END IF;
IF (NEW.`_007D` = 1 AND `_00A2` > 0) THEN
SET NEW.`_00B8` = (NEW.`_0096` / NEW.`_00A2`);
END IF;
END;
这是我在 MySQL Workbench 中遇到的错误,但没有多大帮助。 :/
Error Code: 1064. You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to
use near '' at line 5
【问题讨论】:
-
嗯,这就像今天的第三个问题(我认为),我告诉人们发布他们收到的错误消息。
-
看起来 DELIMITER 命令丢失了。
-
@FaNo_FN 你是对的,我已经编辑了问题以包含错误。
-
@Akina 你是什么意思?我不明白。
-
学习CREATE PROCEDURE and CREATE FUNCTION Statements,尤其是代码示例和第一个代码块之后的文本,以及Defining Stored Programs。另请阅读 Workbench 的关于这一点的帮助。