Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ayudita con un Trigger

Estas en el tema de Ayudita con un Trigger en el foro de Mysql en Foros del Web. Holas muchach@s necesito una ayuda tengo el siguiente problema: Tengo 2 tablas: grupos y Usuarios, ahora tengo un campo dominio en Grupo y en Usuario, ...
  #1 (permalink)  
Antiguo 02/05/2009, 12:35
 
Fecha de Ingreso: febrero-2009
Ubicación: Cusco - Peru
Mensajes: 142
Antigüedad: 15 años, 2 meses
Puntos: 0
Ayudita con un Trigger

Holas muchach@s necesito una ayuda tengo el siguiente problema:

Tengo 2 tablas: grupos y Usuarios, ahora tengo un campo dominio en Grupo y en Usuario, esto es pa controlar accesos en grupo y en particular para los usuarios:

El trigger es el siguiente:
Código dd:
Ver original
  1. DELIMITER $$
  2.  
  3. DROP TRIGGER /*!50032 IF EXISTS */ `bd`.`updateuser`$$
  4.  
  5. CREATE
  6.     /*!50017 DEFINER = 'root'@'localhost' */
  7.     TRIGGER `updateuser` AFTER UPDATE ON `grupo`
  8.     FOR EACH ROW BEGIN
  9.     UPDATE usuario
  10.     SET usuario.dominio=grupo.dominio
  11.     WHERE usuario.IDgrupo=grupo.ID;
  12.     END;
  13. $$
  14.  
  15. DELIMITER ;
Como veran lo que trato de hacer es que al actualizar el campo dominio en el grupo este se actualice en los usuarios del grupo, pero me da el siguiente Error:

Código PHP:
MySQL ErrorUnknown column 'grupo.ID' in 'where clause' 
Ayuda please:

PD: recien toy entrando a esto de Triggers.
  #2 (permalink)  
Antiguo 02/05/2009, 12:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayudita con un Trigger

Prueba así:
Código MySQL:
Ver original
  1. UPDATE usuario, grupo
  2. SET usuario.dominio = grupo.dominio
  3. WHERE usuario.IDgrupo = grupo.ID;
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 02/05/2009, 12:46
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayudita con un Trigger

En el update no estas referenciando la tabla grupo. Por eso te reconoce a grupo.id como una columna desconocida en la sentencia.

trata cambiando tu update por este:
Código mysql:
Ver original
  1. update usuario inner join grupo
  2. on usuario.Idgrupo = grupo.ID
  3. set usuario.dominio = new.dominio;
Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 02/05/2009, 12:51
 
Fecha de Ingreso: febrero-2009
Ubicación: Cusco - Peru
Mensajes: 142
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Ayudita con un Trigger

Gracias por la pronta respuesta, hice lo que me indicas pero ahora me sale el siguiente error:
Código:
-
MySQL Error: Can't update table 'grupo' in stored function/trigger because it is
already used by statement which invoked this stored function/trigger.
-
que puede ser??

Lito recorde que en ves de grupo debi poner "new", :P, gracias por la mano, ya saio y corre perfectamente.

Salu2

Última edición por kerverin; 02/05/2009 a las 12:58 Razón: resuelto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:17.