MySQL триггер после обновления

Я хочу создать триггер 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 - Синтаксическая ошибка рядом с '' в строке 6

Я не знаю где проблема

Я хочу, когда ученик отсутствует, номер файла увеличивается на 1; если он присутствует, ничего не делай.

1 ответ

Вы не можете обновить ту же таблицу в вашем триггере ПОСЛЕ обновления. Однако вы можете создать триггер ДО обновления и установить правильные значения для Nbr_Absences, если присутствует значение Non.

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
;
Другие вопросы по тегам