En mySQL, me gustaria añadir valores desde una tabla al insertar elementos en ella en otra tabla incialmente vacia usando un trigger.
He hecho dos triggers, pero me da problemas al asignar un valor en el segundo trigger.
Primero, he hecho un trigger inicializando los valores de los campos que quiero cambiar después con el otro trigger.
Código MySQL:
Ver originalDELIMITER $$
DECLARE idLiga_clasificacion
, idJornada_clasificacion
INT;
INSERT INTO clasificacion
(puntos
,nPartidosGF
,nPartidosGC
,idLiga_clasificacion
, idJornada_clasificacion,idEquipo_clasificacion)
VALUES (0,0,0,NEW.idLiga_partido
,NEW.idJornada_partido
,NEW.idEquipoLocal
);
INSERT INTO clasificacion
(puntos
,nPartidosGF
,nPartidosGC
,idLiga_clasificacion
, idJornada_clasificacion, idEquipo_clasificacion)
VALUES (0,0,0,NEW.idLiga_partido
,NEW.idJornada_partido
,NEW.idEquipoVisitante
); $$
Este segundo es el trigger donde me da el problema, el problema esta en (UPDATE clasificacion SET puntos=puntos+1...). No provoca un error pero cuando realizo un INSERT en la tabla "partido" y luego miro lo resultados en la tabla "clasificacion" de la asignación "puntos=puntos+1" el resultado es un valor null en el campo de la tupla que debería cambiar.
Código MySQL:
Ver originalDELIMITER $$
WHERE NEW.idLiga_partido
=idLiga_clasificacion
AND NEW.idEquipoLocal
=idEquipo_clasificacion
AND NEW.idJornada_partido
=idJornada_clasificacion
;
WHERE NEW.idLiga_partido
=idLiga_clasificacion
AND NEW.idEquipoLocal
=idEquipo_clasificacion
AND NEW.idJornada_partido
=idJornada_clasificacion
;
WHERE NEW.idLiga_partido
=idLiga_clasificacion
AND NEW.idEquipoLocal
=idEquipo_clasificacion
AND NEW.idJornada_partido
=idJornada_clasificacion
;
WHERE NEW.golesLocal
=NEW.golesVisitante
AND NEW.idEquipoVisitante
=idEquipo_clasificacion
AND NEW.idLiga_partido
=iDLiga_clasificacion
AND NEW.idJornada_partido
=idJornada_clasificacion
; $$
¿Hay alguna manera de asignar un valor de está manera?
*He probado a asignar ese valor,(UPDATE clasificacion SET puntos=puntos+1) en una tupla concreta fuera del trigger, en un query aparte y funciona perfectamente, no da valor null.
Supongo que el error está en (select puntos ..) en el segundo trigger, pero no estoy seguro y no se como resolverlo.