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

0

Я хочу создать триггер 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; если он присутствует, ничего не делайте.

  • 0
    Этот конкретный триггер был бы лучше, если бы вы не использовали after update потому что вы могли бы войти в цикл. Кстати, я бы предложил изменить сообщение об ошибке на английский.
  • 0
    # 1064 - Синтаксическая ошибка рядом с '' в строке 6
Теги:
sql-update
triggers
database-trigger

1 ответ

0

Вы не можете обновить ту же таблицу в своем тригере ПОСЛЕ обновления. Однако вы можете создать триггер перед обновлением и установить правильные значения для 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
;
  • 0
    хорошо, я понимаю, но когда я попробовал ваш код, ошибка все еще присутствовала (# 1064 - Синтаксическая ошибка около '' в строке 5).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню