创建一个触发器,在插入新项目时更新另一个表

时间:2017-04-30 08:16:46

标签: mysql triggers

我有一个表评级(idrating,clientno,spid,rating)和serviceprovider(spid,name,totalrating)。

我想创建一个触发器,使其平均spid的所有评级并将其放入总计列中。最好的方法是什么?或者触发器是不可能的?

1 个答案:

答案 0 :(得分:0)

这应该有效:

CREATE TRIGGER `INSERT_TOTAL` AFTER INSERT ON `rating`
FOR EACH ROW INSERT INTO serviceprovider( spid, name, totalrating ) 
VALUES (

NEW.spid,  'name', (

SELECT AVG( spid ) 
FROM rating
)
)

使用更新:

CREATE TRIGGER `INSERT_TOTAL` AFTER INSERT ON  `rating` 
FOR EACH ROW 
UPDATE serviceprovider SET totalrating = ( SELECT AVG( spid ) FROM rating ) 
WHERE name =  'name'