Zgodnie z komentarzami :)
Potrzebujesz BEFORE INSERT
cyngiel. W tym wyzwalaczu zmieniasz rekord, zanim dotrze on do trwałej pamięci. Korzystając z twojego przykładu, ten wyzwalacz zostałby zdefiniowany w następujący sposób:
DELIMITER $$
CREATE TRIGGER moodle.update_lang
BEFORE INSERT
ON moodle.mdl_user FOR EACH ROW
BEGIN
SET NEW.lang='hu';
END$$
DELIMITER ;
Powód, dla którego nie możesz użyć UPDATE
w tej samej tabeli, do której odnosi się wyzwalacz, ponieważ może to (i spowodowałoby) nieskończoną pętlę.
Uwaga:nie testowałem tego, ale sądząc po twoich komentarzach, wydaje się, że działa. Powodzenia!