Според коментарите :)
Нуждаете се от BEFORE INSERT
задействане. В този тригер променяте записа, преди да достигне постоянното му хранилище. Използвайки вашия пример, този тригер ще бъде дефиниран така:
DELIMITER $$
CREATE TRIGGER moodle.update_lang
BEFORE INSERT
ON moodle.mdl_user FOR EACH ROW
BEGIN
SET NEW.lang='hu';
END$$
DELIMITER ;
Причината, поради която не можете да използвате UPDATE
на същата таблица, за която се отнася тригерът, е, защото това може (и би) причинило безкраен цикъл.
Забележка:Не съм тествал това, но съдейки по вашите коментари изглежда работи. Успех!