Pues visto y considerando que la cosa se te complica, y para no afectar la funcionalidad de la base, vamos a intentarlo de una forma simple.
partamos que si estás harcodeando el nombre de las bases, y siendo innecesario no sólo cambiar de base, sino también que ni siquiera tiene sentido iterar, podemos intentarlo mas o menos así:
Código MySQL:
Ver original IF NEW.Jname
!= OLD.Jname
THEN SET @cont = @cont + 1;
END IF;
IF (SELECT COUNT(*) FROM prugeok.j25_users WHERE name = OLD.Jname)= 1 THEN
UPDATE prugeok.j25_users SET `NAME` = NEW.Jname WHERE `NAME = OLD.Jname;
UPDATE pruebas.j25_users
SET `NAME` = NEW.Jname
WHERE `NAME = OLD.Jname; SET @cont = @cont + 1;
END IF;
END
A mi entender, al hacer esa iteración te estás complicando mucho.
Incluso, si quieres saber cuál o cuales bases se actualizaron, podemos hacer esto:
Código MySQL:
Ver original IF NEW.Jname
!= OLD.Jname
THEN SET @cont = @cont + 1;
END IF;
IF (SELECT COUNT(*) FROM prugeok.j25_users WHERE name = OLD.Jname)= 1 THEN
UPDATE prugeok.j25_users SET `NAME` = NEW.Jname WHERE `NAME = OLD.Jname;
UPDATE pruebas.j25_users
SET `NAME` = NEW.Jname
WHERE `NAME = OLD.Jname; SET @cont = @cont + 5;
END IF;
END
Esto sería lo devuelto por @cont:
Cita: - 0: ninguna.
- 1: sólo la primera.
- 3: sólo la segunda.
- 4: la primera y la segunda.
- 5: sólo la tercera.
- 6 la primera y la tercera.
- 8: la segunda y la tercera.
- 9: Todas.