我使用以下语法在
mysql中创建了一个存储过程.
DROP PROCEDURE IF EXISTS `sp-set_comment_count`;
DELIMITER $$
CREATE PROCEDURE `sp_set-comment_count` (IN _id INT)
BEGIN
-- AC - AllCount
DECLARE AC INT DEFAULT 0;
SELECT COUNT(*) AS ac
INTO AC
FROM usergroups AS ug
LEFT JOIN usergroup_comments AS ugm ON ugm.`gid` = ug.`id`
LEFT JOIN mediagallery AS dm ON ugm.mid = dm.`id`
WHERE dm.`status` NOT IN (200, 201, 202, 203, 204, 205)
AND ug.`id` = _id;
UPDATE usergroups
SET allCount = AC,
WHERE usergroups.`id` = _id;
END $$
DELIMITER ;
仅供参考我已经大大简化了存储过程,但我知道它的工作没有任何问题.
我希望能够做的是从usergroup_comments设置一个触发器,就像这样工作.
DROP TRIGGER IF EXISTS `usergroups_comments_insert`
CREATE TRIGGER `usergroups_comments_insert` AFTER INSERT ON `usergroups_comment`
FOR EACH ROW
BEGIN
CALL sp-set-comment_count(NEW.`gid`);
END;
但由于某些原因,每次我做mysql时都会向我抛出一个错误,这个错误不足以说明第4行有语法错误.
我已经梳理了mysql文档并找到了一些关于触发器限制的信息,但发现它相当令人费解.
任何想法都会有所帮助.