[英]Quick MySQL Trigger Update
我需要更改此觸發器以指向剛剛更新的列,所以我該如何將NEW.song_id更改為? 謝謝!
DROP TRIGGER IF EXISTS `ratings_update`//
CREATE TRIGGER `ratings_update` AFTER UPDATE ON `ratings2`
FOR EACH ROW update SONGS set
rating_sum = rating_sum + NEW.rating,
rating = rating_sum / rating_count
where id = NEW.song_id
//
編輯vvv
DROP TRIGGER IF EXISTS `ratings_upd`//
CREATE TRIGGER `ratings_upd` AFTER UPDATE ON `ratings2`
FOR EACH ROW update SONGS set
rating_sum = rating_sum + NEW.rating - OLD.rating,
rating_count = rating_count,
rating = rating_sum / rating_count
where id = NEW.song_id
//
這是我想到的觸發器,但是在運行它時卻拋出此錯誤。
ratings_upd
更新后ratings2
在行各1行更新” OLD
訪問更新前的值,而NEW
訪問更新后的值。
從http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html :
您可以使用別名OLD和NEW來引用主題表(與觸發器關聯的表)中的列。 OLD.col_name在更新或刪除之前引用現有行的列。 NEW.col_name指向要插入的新行或更新后的現有行的列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.