Hola buenas tardes a todos mi problemilla es el siguiente, tengo una tabla partidos la cual tiene
PARITDOS
ID_PARTIDOS
NUM_JORNADA
EQ_CASA
EQ_FUERA
RESULTADO
Vale lo que quiero es que dependiento del resultado,que puede ser 1(gana eq_casa),2(gana eq_fuera) y x ... me actualize los puntos de la tabla equipos,dependiendo de quien haya ganado o si han empatado.
La tabla equipos tiene:
EQUIPOS
NOMBRE(PK)
CIUDAD
PUNTOS
DIVISION
He creado este disparador pero no me funciona:
CREATE OR REPLACE TRIGGER SUMA_PUNTOS
AFTER UPDATE ON PARTIDOS
DECLARE
V_EQ_CASA PARTIDOS.EQ_CASA%TYPE;
V_EQ_FUERA PARTIDOS.EQ_FUERA%TYPE;
V_RESULTADO PARTIDOS.RESULTADO%TYPE;
BEGIN
SELECT EQ_CASA,EQ_FUERA,RESULTADO
INTO V_EQ_CASA,V_EQ_FUERA,V_RESULTADO
FROM PARTIDOS;
IF V_RESULTADO=1 THEN
UPDATE EQUIPOS
SET PUNTOS=PUNTOS+3
WHERE V_EQ_CASA=EQUIPOS.NOMBRE;
END IF;
END;
Me faltaria el caso de resutlado=2 y de x pero voy por partes.
el trigger se me crea pero a la hora de actualizar me dice que le salen mas de dos valores, exactamente pone:
exact fetch returns more than requested number of rows
at nombre_trigger, line 6
error during execution of trigger nombre_trigger.
Pido consejo y ayuda porque no se como hacer esto, tambien he de decir que el nombre eq_casa y eq_fuera viene de la clave primaria de equipos (nombre), no se si por coger los nombres del mismo campo habra errores.
Gracias por todo, espero vuestras respuestas.