Ver Mensaje Individual
  #14 (permalink)  
Antiguo 01/10/2013, 10:34
daicon
 
Fecha de Ingreso: julio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: TRigger. Set @var en consulta.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
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
  1.     SET @cont = 0;
  2.     IF NEW.Jname != OLD.Jname THEN
  3.         IF (SELECT COUNT(*) FROM aux.j25_users WHERE name = OLD.Jname)= 1 THEN
  4.             UPDATE aux.j25_users SET `NAME` = NEW.Jname WHERE `NAME = OLD.Jname;
  5.            SET @cont = @cont + 1;
  6.        END IF;
  7.        IF (SELECT COUNT(*) FROM prugeok.j25_users WHERE name = OLD.Jname)= 1 THEN
  8.            UPDATE prugeok.j25_users SET `NAME` = NEW.Jname WHERE `NAME = OLD.Jname;
  9.             SET @cont = @cont + 1;
  10.         END IF;
  11.         IF (SELECT COUNT(*) FROM pruebas.j25_users WHERE name = OLD.Jname)= 1 THEN
  12.             UPDATE pruebas.j25_users SET `NAME` = NEW.Jname WHERE `NAME = OLD.Jname;
  13.            SET @cont = @cont + 1;
  14.    END IF;
  15. END
A mi entender, al hacer esa iteración te estás complicando mucho.
Mmm O_o.... valeee. xD
Si que es una solución, y tengo que reconocer que no entiendo ni como NO se me ha pasado por la cabeza.

Pero si que le veo un inconveniente, y haber que me dices tu.
No solo van a ser 3 BD, van a ser mas.... como unas 15-20. ¿No es un poco..... poco elegante?

Pero vaya, que aparte de que me recomiendes otra cosa, es lo que voy a añadir por ahora.