我对触发器有疑问。
我们说我有两张桌子,一张名为' studentData' ,另一张叫' studentStanding' 。
' studentData'是一个由teacherID,studentID和评级组成的表。 所以不同的老师可能会给单个学生不同的评分
(例如:teacherID:1给予评分:5给学生ID:3和老师ID:7给予评分:10给学生ID:3)
studentStanding是由studentID,studentName和averageRating组成的表。
我的目的是创造一个TRIGGER;
每次新教师(示例教师ID:120)给予studentID评分:3, 此TRIGGER将重新计算此学生的平均评分3。
我曾尝试过编写触发器,但我确信这是完全错误的。 这是它的外观:
CREATE TRIGGER updateAVG
AFTER INSERT ON studentData
REFERENCING NEW AS N_ROW
FOR EACH ROW
UPDATE studentStanding SET Rating = (
Select AVG(Rating)
from studentData
)
我期待着能帮助我的人。随意给我的触发器提出建议。谢谢。
注意:这不是学校作业,我保证!
答案 0 :(得分:3)
CREATE TRIGGER computeAvg
AFTER INSERT ON studentData
FOR EACH ROW
UPDATE studentStanding
SET averageRating = (SELECT AVG(rating) FROM studentData
WHERE studentStanding.studentID = studentData.studentID)
WHERE studentID = NEW.studentID;