Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/09/2013, 17:55
daicon
 
Fecha de Ingreso: julio-2010
Mensajes: 134
Antigüedad: 13 años, 10 meses
Puntos: 0
TRigger. Set @var en consulta.

Hola gente,

Podrias ver que me falta, no consigo hacer que funcione.

Código:

BEGIN

IF NEW.Jname != OLD.Jname THEN
SET @cont = 1;
SET @bds = ('aux,prugeok,pruebas');


    WHILE @cont <= 3 DO 
    
    	    SET @bd = (SELECT CASE 
                WHEN @bds REGEXP CONCAT('((,).*){',@cont,'}') 
                THEN SUBSTRING_INDEX(SUBSTRING_INDEX(@bds,',',@cont+1),',',-1) 
                ELSE NULL
            END);
            
           use @bd;
    	    
            SET @nombre =  (SELECT name FROM j25_users WHERE name = OLD.Jname);
            IF @nombre != NULL THEN
            	UPDATE j25_users SET name = NEW.Jname WHERE name = OLD.Jname;
            END IF;
            SET @cont = @cont + 1; 
    END WHILE; 

END IF;

END
Pues me da error en la linea de use @bd.
He comprobado lo que se guarda en @bd con un select, y funciona bien.
Pero nada. He probado tambien usando @bd.tabla.campo en las consultas siguiente, pero igualmente me falla.

Haber si me podeis ayudar!!!

Gracias!