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

Trigger no hace su trabajo

Estas en el tema de Trigger no hace su trabajo en el foro de Mysql en Foros del Web. Hola gente, espero que esten bien!. Veran hace poco he aprendido a crear Triggers por lo que me he puesto en practica. La verdad ultimamente ...
  #1 (permalink)  
Antiguo 29/07/2016, 21:30
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
Trigger no hace su trabajo

Hola gente, espero que esten bien!.

Veran hace poco he aprendido a crear Triggers por lo que me he puesto en practica.

La verdad ultimamente me ha resultado todo bien, pero hoy me encuentro con un problemita.

Veran, estoy manejando tres tablas, TB1, TB2 y TB3

Cuando en la TB1 se ingresa un registro en la TB2 y TB3 automaticamente se generan registros, Estos registros se generan con un emulador de un juego, es decir, cuando creas un personaje en el juego se genera los datos del pj en la TB1 que contiene un campo GUID que identifica a dicho pj (GUID unico) gracias a esto el emulador genera datos en la TB2 y TB3 que tambien contienen un campo GUID para saber que datos son de que pj

ahora bien, yo he creado este trigger:
Código SQL:
Ver original
  1. DELIMITER $$
  2. CREATE TRIGGER `add_set_AI` AFTER INSERT ON `TB1` FOR EACH ROW
  3.     BEGIN
  4.         DELETE FROM `TB2` WHERE guid = NEW.guid;
  5.         DELETE FROM `TB3` WHERE guid = NEW.guid;
  6.     END;$$
  7. DELIMITER ;

El problema es que al crear el pj me encuentro con que el trigger no me elimina los registros de las otras dos tablas (TB2 y TB3).

¿Porque podria ocurrir esto?

Espero me puedan ayudar y gracias de antemano!
  #2 (permalink)  
Antiguo 01/08/2016, 12:28
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Trigger no hace su trabajo

Saludo
A ver si entendí, lo que quieres lograr es que lo que hace el emulador lo borre el trigger?
Y no es más simple modificar esa funcionalidad en el emulador y así evitar el trigger?
Pues así incluso se evita procesamiento del emulador y de la base de datos.

Ahora, seguramente no se borran porque, al ser un trigger, se dispara en el momento justo
del insert, en cuyo caso, el emulador aún no llega a crear los registros de las otras tablas
pues la base de datos está ejecutando el trigger, como no hay registros que coincidan, no tiene que borrar, y posteriormente es que se crean.

Solución? La mejor, la que mencioné inicialmente.
Otras...

Crear trigger para TB2 y TB3 que hagan el borrado
Crear un store procedure que sea llamado desde el emulador enviando el id único
y que haga lo que actualmente tiene el trigger.

Así que, en realidad, es mejor ir a la solución inicial, que es la de fondo.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 02/08/2016, 00:03
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
Respuesta: Trigger no hace su trabajo

Cita:
Iniciado por mortiprogramador Ver Mensaje
Primeramente gracias por responder :)

La verdad el tema del emulador es complicado, cuenta con muchos scripts C++ y al compilar es posible que falle porque muchos scripts dependen de otros y todo ese lio...

pero me gusto mucho el tema del procedure, lo veo muy interesante.

intentare con eso a ver que sucede, aunque me gustaria si pudieras darme un ejemplo con el procedure, saludos y mil gracias por tu respuesta ;)

Etiquetas: campo, registro, registros, tabla, trabajo, trigger
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 01:07.