3

我有以下触发语句

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但出现语法错误。我究竟做错了什么?

注意我已经SELECT在表上运行了语句Review,它给出的结果没有任何问题。

编辑:我意识到我以前不能有触发器SELECT,因此决定在应用程序层处理它。看到这个: http: //forums.mysql.com/read.php?99,277396,277692#msg-277692

4

1 回答 1

2

trigger_event 不能是 select trigger_event = { INSERT | 更新 | 删除 }

CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name
trigger_time trigger_event
ON tbl_name FOR EACH ROW
trigger_body

触发时间:{之前| 后 }

触发事件:{插入| 更新 | 删除 }

于 2014-05-30T14:05:02.223 回答