【发布时间】:2013-03-23 08:25:50
【问题描述】:
嗨,我正在使用 mysql 触发器来更新另一个表插入时的表
这个触发器工作正常
CREATE TRIGGER `update_pupil_subject` AFTER INSERT ON `pupil_marks`
FOR EACH ROW
BEGIN
UPDATE pupil_subjects SET NumberOfStudens = NumberOfStudens + 1 WHERE NEW.SubjectID = SubjectID;
END$$
但这会报错
CREATE TRIGGER `update_pupil_subject` AFTER INSERT ON `pupil_marks`
FOR EACH ROW
BEGIN
UPDATE pupil_subjects SET NumberOfStudens = NumberOfStudens + 1 , AverageMarks = (SELECT AVG(Marks) FROM pupil_marks WHERE NEW.StudentID = StudentID ) WHERE NEW.SubjectID = SubjectID;
END$$
如何正确写这个,请帮忙。在此先感谢。
【问题讨论】:
-
查看查询 - 它缺少
END$$您是否在CREATE TRIGGER之前声明了$$作为分隔符? -
@dev-null-dweller 嗯,我做到了,但它没有说 #1235 - 这个版本的 MySQL 还不支持“一个表具有相同操作时间和事件的多个触发器”
-
您需要为该特定事件在表上放置触发器!
-
@KanishkaPanamaldeniya 在创建新触发器之前,您必须先删除之前的触发器 (
DROP TRIGGER update_pupil_subject) -
啊哈,伙计们,非常感谢,我会这样做的 :)
标签: php mysql sql triggers sql-update