Je ne sais pas ce qui cause cela, mais changer votre gestionnaire en une erreur SQL plus spécifique peut fonctionner dans ce cas
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET updateDone = 1;
Vous pouvez essayer d'alterner le if et le fetch
IF updateDone =1 THEN
LEAVE doUpdate;
END IF;
FETCH updater INTO Id, Elm, ElmParent, Type, Processed, Country;
cela garantit que FETCH n'est pas exécuté dans le cas où le CONTINE HANDLER a déjà signalé que vous n'avez plus d'enregistrements.