Mysql
 sql >> Base de données >  >> RDS >> Mysql

Déclencheur MySQL pour mettre à jour la ligne insérée

Selon les commentaires :)

Vous avez besoin d'un BEFORE INSERT gâchette. Dans ce déclencheur, vous modifiez l'enregistrement avant qu'il n'atteigne le stockage permanent. En utilisant votre exemple, ce déclencheur serait défini comme ceci :

DELIMITER $$
CREATE TRIGGER moodle.update_lang
BEFORE INSERT
ON moodle.mdl_user FOR EACH ROW
BEGIN
   SET NEW.lang='hu';
END$$
DELIMITER ;

La raison pour laquelle vous ne pouvez pas utiliser UPDATE sur la même table à laquelle le déclencheur fait référence est parce que cela pourrait (et provoquerait) une boucle infinie.

Remarque :Je n'ai pas testé cela, mais à en juger par vos commentaires, cela semble fonctionner. Bonne chance !