diff --git a/trigger.sql b/trigger.sql index 724ba83..93c061e 100644 --- a/trigger.sql +++ b/trigger.sql @@ -1,3 +1,5 @@ + +/* Pregunta 3*/ CREATE OR REPLACE TRIGGER correlative_increment BEFORE INSERT ON ciudad FOR EACH ROW DECLARE @@ -8,4 +10,39 @@ BEGIN SELECT MAX(id_ciudad) INTO idCiudad FROM ciudad; :new.id_ciudad := idCiudad + 1; -END; \ No newline at end of file +END; + +/* Pregunta 4 */ + +CREATE OR REPLACE TRIGGER Validacion_Pre_Competencia BEFORE INSERT ON PARTICIPAR_COMPETENCIA +FOR EACH ROW +DECLARE + CURSOR participar_preco + IS SELECT PPC.id_precompetencia + FROM PARTICIPAR_PRECOMPETENCIA PPC + LEFT JOIN PRECOMPETENCIA PC ON PC.id_precompetencia = PPC.id_precompetencia + WHERE PPC.id_atleta = :NEW.id_atleta AND pc.competencia = :NEW.id_competencia; + + id_precompetencia PARTICIPAR_PRECOMPETENCIA.id_precompetencia%TYPE; + +BEGIN + + OPEN participar_preco; + FETCH participar_preco into id_precompetencia; + IF participar_preco%found THEN + dbms_output.put_line('EL ATLETA HA PARTICIPADO EN PRECOMPETENCIAS ASOCIADAS'); + ELSE Raise_Application_Error(-20120, 'NO SE PUEDE INSERTAR, EL ATLETA NO POSEE PRECOMPETENCIAS ASOCIADAS A LA COMPETENCIA'); + END IF; + CLOSE participar_preco; + +END; + + +INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '21', TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS')); + +INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('3', '2', '100', TO_DATE('2020-06-27 00:00:00', 'YYYY-MM-DD HH24:MI:SS')); + +INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '21', TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS')); + + +/* Pregunta 5 */ \ No newline at end of file