Come da commenti :)
Hai bisogno di un BEFORE INSERT
grilletto. In quel trigger, modifichi il record prima che raggiunga la memoria permanente. Usando il tuo esempio, questo trigger sarebbe definito in questo modo:
DELIMITER $$
CREATE TRIGGER moodle.update_lang
BEFORE INSERT
ON moodle.mdl_user FOR EACH ROW
BEGIN
SET NEW.lang='hu';
END$$
DELIMITER ;
Il motivo per cui non puoi utilizzare UPDATE
sulla stessa tabella a cui si riferisce il trigger è perché ciò potrebbe (e causerebbe) un ciclo infinito.
Nota:non l'ho testato, ma a giudicare dai tuoi commenti sembra funzionare. Buona fortuna!