我有两个表:产品和评论。在评论表中输入评论时,我希望Product表自动更新(review_count + 1)和(stars = avg of all stars)。我怎样才能做到这一点?。这两个表由product_id连接。我怎么能这样做?
答案 0 :(得分:0)
所以如果有其他人在想,我找到了答案。我不得不制作一个调用两个程序的触发器,因为我无法在同一个表上创建两个触发器。下面是代码:
MySQL的:
DELIMITER $$
create procedure update_review_count(IN pid INT)
update Product
set review_count=review_count+1
where product_id=pid;$$
DELIMITER ;
DELIMITER $$
create procedure update_stars(IN pid INT)
update Product
set stars=(select avg(stars) from Review where product_id=pid)
where product_id=pid;$$
DELIMITER ;
DELIMITER $$
create trigger review_trigger after insert on Review for each row
begin
CALL update_review_count(new.product_id);
CALL update_stars(new.product_id);
end $$
DELIMITER ;