更新后mysql触发

标签 mysql triggers sql-update database-trigger

我想创建一个 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/

相关文章:

mysql - Docker MariaDB/Mysql 转储

mysql - 文件编码(UTF-8 无法正常工作)

php - 使用 mysql_query() 获取位字段

mysql - 如何使用 MySQL 触发器按操作对数据更改进行分组

php - while-list 给出奇怪的值

Java JTable 一次将一个单元格保存到数据库中

php - 在获取的类别中获取子类别

mysql - 如果值已更改,则使用触发器插入行

sql-server - 创建触发器以限制特定日期的访问

php - 是否有与 PDO::FETCH_CLASS 等效的 INSERT 或 UPDATE?