簡體   English   中英

快速MySQL觸發器更新

[英]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
//

這是我想到的觸發器,但是在運行它時卻拋出此錯誤。

1064-您的SQL語法有誤; 檢查對應於你的MySQL服務器版本使用附近的“// CREATE TRIGGER正確的語法手冊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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM