Ver Mensaje Individual
  #10 (permalink)  
Antiguo 01/10/2013, 07:51
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
Para empezar a prepararte un modelo de SP, necesito saber una sola cosa: ¿Qué es exactamente lo que hace ese código que intentas usar?
Especialmente, necesito entender esto:
Código MySQL:
Ver original
  1. SET @bd = (SELECT CASE
  2.                 WHEN @bds REGEXP CONCAT('((,).*){',@cont,'}')
  3.                 THEN SUBSTRING_INDEX(SUBSTRING_INDEX(@bds,',',@cont+1),',',-1)
  4.                 ELSE NULL
  5.             END);
¿Qué se supone que haces con eso? ¿Qué obtienes?
Te explico ese código ya que me costo bastante dar con el.
Te explico primero lo que quiero hacer.

Tengo varias BD. Todas son similares. Hay usuarios que existen en las diferentes bd, con los mismos datos.
Tengo una BD (llamémosla Principal), con una sola tabla, donde estoy recopilando y guardando los nombres de usuarios, con sus campos principales, de todas las demás BD. Cada nombre de usuario es UNICO.

Entonces....
Cada vez que un usuario actualiza algún campo de su tabla en la BD donde se encuentra, Tengo un trigger que actualiza los campos en la BD Principal.

Hasta AQUI todo bien.

Ahora lo que necesito es que, cuando la BD principal detecta que se ha producido un UPDATE, propagar la información por las demás BD donde se encuentre ese usuario.

Entonces, lo que he hecho, como puedes ver en el código es guardar en:
@bds = ('aux,prugeok,pruebas');
El nombre de las BD que tengo (Ya que por royo de permisos en el hosting donde estoy no me permite usar las llamdas a sistema de SQL), y ese código que me preguntas, lo que hace es obtener uno a uno los nombres de las BD.
Como veras es un string separados por comas, pues las líneas de código que me has preguntado, te va devolviendo una a una las BD.
Cada vez que llamo a ese código me devuelve la siguiente, ya que veras, que tiene otras variables, como cont, etc...

----------------------

Entonces, mi idea era tener un trigger en esta BD principal con el código que puse en el primer mensaje, y ya aparecieron los problemas.



Espero haberme explicado bien!!

Gracias!