【发布时间】:2021-02-13 04:55:05
【问题描述】:
我正在尝试创建一个触发器以在更新 Assign 表时更新 Project 表,但我一直收到此错误:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'END IF
有人知道我为什么会收到这个语法错误吗?请注意,我是这方面的初学者,所以我的 SQL 语句可能完全错误。另外,我确信在我的 IF 语句中运行的查询是有效的,因为我是在没有在触发器内的情况下自行运行的。
delimiter $$
CREATE TRIGGER update_trigger AFTER UPDATE ON Assign
FOR EACH ROW
BEGIN
IF OLD.projNo <> new.projNo THEN
#RUN THIS QUERY TO UPDATE MY TABLE
UPDATE Project p JOIN
(SELECT Project.projNo, COUNT(DISTINCT empid) as numEmployeeAssigned
FROM (Project LEFT JOIN Assign ON Project.projNo=Assign.projNo)
GROUP BY projNo
) as tb
ON p.projNo = tb.projNo
SET p.numEmployeeAssigned = tb.numEmployeeAssigned
#END QUERY
END IF
END$$
delimiter;
【问题讨论】:
-
在 UPDATE 语句的末尾需要一个分号。
-
@BillKarwin 每当我在 UPDATE 末尾添加分号时,语法错误都没有得到解决 - 不过感谢您的帮助。
标签: mysql sql triggers phpmyadmin sql-update