2
我有以下触发声明触发前选择
DELIMITER //
CREATE TRIGGER rating
BEFORE SELECT
ON `clinic`
FOR EACH ROW
BEGIN
SET NEW.OLD.`rate` = (SELECT AVG(`rate`) FROM `Review` WHERE `Clinic_id` = NEW.OLD.`id`);
END//
我试图按照这里http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html但得到语法错误的指示。我究竟做错了什么?
NB我已经在Review
表上运行SELECT
声明,它给出了没有任何问题的结果。
编辑:我意识到我不能在SELECT
之前触发一个触发器,因此决定在应用程序层处理它。看到这个:http://forums.mysql.com/read.php?99,277396,277692#msg-277692
您无法在SELECT上放置触发器。 http://stackoverflow.com/questions/6137935/can-i-launch-a-trigger-on-select-statement-in-mysql – AmazingDreams 2013-03-08 07:54:17
哈哈,哇!我几乎读了那个链接中的所有东西,并没有注意到SELECT不是** trigger_event **!那么你建议我可以做什么? – mavili 2013-03-08 07:56:43
我不知道你在努力达到什么目的。检查一个诊所平均“看到”多少? – AmazingDreams 2013-03-08 07:59:05