Sql 用于计算另一个表中的平均值的DB2触发器

Sql 用于计算另一个表中的平均值的DB2触发器,sql,db2,triggers,Sql,Db2,Triggers,我得到了两个表Product(Productname VARCHAR(10),Rating REAL)和Review(RatingID INT,Productname VARCHAR(10),Rating INT)。 产品评级是该特定产品评审中给出的所有评级的平均值。 我希望有一个触发器,在插入或更新新评论时更新产品,但我就是不知道该怎么做。 是否有一些db2等价于SQL Server中的inserted() 很抱歉,我的问题很弱。DB2-After-Insert触发器: CREATE TRIG

我得到了两个表Product(Productname VARCHAR(10),Rating REAL)和Review(RatingID INT,Productname VARCHAR(10),Rating INT)。 产品评级是该特定产品评审中给出的所有评级的平均值。
我希望有一个触发器,在插入或更新新评论时更新产品,但我就是不知道该怎么做。 是否有一些db2等价于SQL Server中的inserted()


很抱歉,我的问题很弱。

DB2-After-Insert触发器:

CREATE TRIGGER NEW_REVIEW
 AFTER INSERT ON REVIEW
  REFERENCING NEW AS N_ROW
   FOR EACH ROW
    UPDATE PRODUCT SET Rating = (
      Select AVG(Rating) 
      from Review 
      where ProductName = N_ROW.ProductName
      )
更新后:

CREATE TRIGGER NEW_REVIEW
 AFTER UPDATE ON REVIEW
  REFERENCING NEW AS N_ROW
   FOR EACH ROW
    UPDATE PRODUCT SET Rating = (
      Select AVG(Rating) 
      from Review 
      where ProductName = N_ROW.ProductName
      )
删除后:

CREATE TRIGGER NEW_REVIEW
 AFTER DELETE ON REVIEW
  REFERENCING OLD AS O_ROW
   FOR EACH ROW
    UPDATE PRODUCT SET Rating = (
      Select AVG(Rating) 
      from Review 
      where ProductName = O_ROW.ProductName
      )

查看更多信息。

DB2后插入触发器:

CREATE TRIGGER NEW_REVIEW
 AFTER INSERT ON REVIEW
  REFERENCING NEW AS N_ROW
   FOR EACH ROW
    UPDATE PRODUCT SET Rating = (
      Select AVG(Rating) 
      from Review 
      where ProductName = N_ROW.ProductName
      )
更新后:

CREATE TRIGGER NEW_REVIEW
 AFTER UPDATE ON REVIEW
  REFERENCING NEW AS N_ROW
   FOR EACH ROW
    UPDATE PRODUCT SET Rating = (
      Select AVG(Rating) 
      from Review 
      where ProductName = N_ROW.ProductName
      )
删除后:

CREATE TRIGGER NEW_REVIEW
 AFTER DELETE ON REVIEW
  REFERENCING OLD AS O_ROW
   FOR EACH ROW
    UPDATE PRODUCT SET Rating = (
      Select AVG(Rating) 
      from Review 
      where ProductName = O_ROW.ProductName
      )

查看更多信息。

谢谢。但并不完全正确。缺少更新的WHERE子句。哎呀!我没有正确地检查Q。您还需要一个更新触发器。我也会发布它。这实际上是为数不多的几个完全有效的触发器用例之一:-)谢谢。但并不完全正确。缺少更新的WHERE子句。哎呀!我没有正确地检查Q。您还需要一个更新触发器。我也会发布它。这实际上是触发器为数不多的完全有效的用例之一:-)