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