Sql 用于计算另一个表中的平均值的DB2触发器
我得到了两个表Product(Productname VARCHAR(10),Rating REAL)和Review(RatingID INT,Productname VARCHAR(10),Rating INT)。 产品评级是该特定产品评审中给出的所有评级的平均值。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
我希望有一个触发器,在插入或更新新评论时更新产品,但我就是不知道该怎么做。 是否有一些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。您还需要一个更新触发器。我也会发布它。这实际上是触发器为数不多的完全有效的用例之一:-)