Preciso criar uma trigger que compare 2 campos de uma mesma coluna e esta impeça que seja inserido 2 times iguais..
E outra que impeça que um jogador sem time cadastrado no campeonato participe de uma partida
O Segundo codigo consegui fazer
que e este:
CREATE OR REPLACE TRIGGER valida_atuacao
BEFORE INSERT OR UPDATE ON jog_partida
FOR EACH ROW
DECLARE
mandante partida.sigla_time_mandante%TYPE;
desafiante partida.sigla_time_desafiante%TYPE;
time_jog jogador.sigla_time%TYPE;
BEGIN
SELECT sigla_time
INTO time_jog
FROM jogador
WHERE num_incr_jog = :NEW.num_incr_jog;
SELECT sigla_time_mandante, sigla_time_desafiante
INTO mandante, desafiante
FROM partida
WHERE num_par = :NEW.num_par;
IF time_jog
NOT IN (mandante, desafiante) THEN
RAISE_APPLICATION_ERROR (-20005, 'Jogador não faz parte dos times participantes da partida!');
END IF;
END;
CREATE OR REPLACE TRIGGER compara_times
BEFORE INSERT OR UPDATE ON partida
FOR EACH ROW
DECLARE
mandante partida.sigla_time_mandante%TYPE;
desafiante partida.sigla_time_desafiante%TYPE;
BEGIN
IF (mandante=desafiante)OR(mandante=mandante)OR (desafiante=desafiante)
THEN
RAISE_APPLICATION_ERROR (204, 'você inseriu dois times iguais na partida!');
END IF;
END;