我有一个关于触发器的问题。
假设我有两个表,一个名为'studentData',另一个称为'studentStanding'。
“studentData”是一个由教师 ID、学生 ID 和评分组成的表。所以不同的老师可能会给同一个学生不同的评分
(例如:teacherID: 1 给studentID: 3 评分为5,而teacherID: 7 给studentID: 3 评分为10)
StudentStanding是由studentID、studentName和averageRating组成的表。
我的目的是创建一个触发器;
每次新老师(例如教师 ID:120)对学生 ID:3 进行评分时,此触发器将重新计算该学生 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
)
Run Code Online (Sandbox Code Playgroud)
我期待着任何可以帮助我的人。也请随意对我的触发器提出建议。谢谢。
注意:我保证,这不是学校作业!
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;
Run Code Online (Sandbox Code Playgroud)