我有一个表评级(idrating,clientno,spid,rating)和serviceprovider(spid,name,totalrating)。
我想创建一个触发器,使它对spid的所有评级进行平均,然后将其放在totalrating列中。最好的方法是什么?还是不可能触发?
最佳答案
这应该工作:
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'