【发布时间】:2017-12-18 10:08:06
【问题描述】:
END 触发器语法有点问题,得到:
#1064 - 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 30 行的“END”附近使用的正确语法
...知道失败的原因吗?
DELIMITER //
DROP TRIGGER IF EXISTS trg_tblOptymaster_AFTER_UPDATE //
CREATE TRIGGER trg_tblOptymaster_AFTER_UPDATE AFTER UPDATE ON tblOptyMaster
FOR EACH ROW BEGIN
DECLARE DateFrom DATE;
DECLARE DateTo DATE;
SET @DateFrom=DATE_ADD(OLD.DueDate, INTERVAL 6 MONTH);
SET @DateTo=DATE_ADD(NEW.DueDate, INTERVAL 6 MONTH);
INSERT INTO tblOptyDueDateMovement
(
OpportunityCRMID,
SnapshotDate,
DueDateFrom,
DueDateTo,
DueDateSlippage_Days,
DueDateSlippage_Months,
DueDateSlippage_FYs
)
VALUES
(
NEW.OpportunityCRMID,
NEW.SnapshotDate,
OLD.DueDate,
NEW.DueDate,
TIMESTAMPDIFF(DAY,DueDateFrom, DueDateTo),
TIMESTAMPDIFF(MONTH,DueDateFrom, DueDateTo),
TIMESTAMPDIFF(YEAR,@DateFrom, @DateTo)
)
END; //
DELIMITER ;
【问题讨论】:
-
错误信息与您的代码不匹配。
-
对不起,我在提交之前又试了一次,并稍作更改。我已经更正了一些,但 END 仍然存在问题...