我想创建一个 mysql 触发器来操作列
这是代码:
CREATE TRIGGER gestion_absences after update
ON Etudiant FOR EACH ROW
begin
if( NEW.Present = 'Non')
then
update Etudiant set Nbr_Absences = (OLD.Nbr_Absences) + 1 where (NEW.Present) = 'Non';
end if;
End;
错误是:
# 1064 - Syntax error near '' at line 6
不知道问题出在哪里
我希望当学生缺席时,le数加1; 如果他在场,则什么也不做。
最佳答案
更新触发器后,您无法再更新触发器中的同一个表。但是,您可以在更新之前创建触发器,并为 Nbr_Absences 设置正确的值(如果存在为“非”)。
CREATE TRIGGER gestion_absences BEFORE UPDATE ON Etudiant
FOR EACH ROW
BEGIN
IF NEW.Present = 'Non' THEN
SET new.Nbr_Absences = old.Nbr_Absences + 1;
END IF;
END
;
关于更新后mysql触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49855315/