Commit 8d01b8bc authored by M1888's avatar M1888

triggerit

parent 831a1f21
...@@ -274,8 +274,7 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma` ...@@ -274,8 +274,7 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma`
BEGIN BEGIN
-- kaikki mahdollisesti käytettävät muuttujat on määriteltävä -- kaikki mahdollisesti käytettävät muuttujat on määriteltävä
-- heti BEGIN-blokin alussa... -- heti BEGIN-blokin alussa...
DECLARE kj INT; DECLARE pvm DATETIME;
DECLARE vj INT;
DECLARE id INT; DECLARE id INT;
DECLARE id2 INT; DECLARE id2 INT;
DECLARE joukkue1 INT; DECLARE joukkue1 INT;
...@@ -290,13 +289,14 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma` ...@@ -290,13 +289,14 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma`
CALL `ottelutapahtuma_liikaa_tapahtumia`; CALL `ottelutapahtuma_liikaa_tapahtumia`;
END IF; END IF;
SET kj = (SELECT kotijoukkue FROM ottelu WHERE ottelu_id = NEW.ottelu_id); SET joukkue1 = (SELECT kotijoukkue FROM ottelu WHERE ottelu_id = NEW.ottelu_id);
SET vj = (SELECT vierasjoukkue FROM ottelu WHERE ottelu_id = NEW.ottelu_id); SET joukkue2 = (SELECT vierasjoukkue FROM ottelu WHERE ottelu_id = NEW.ottelu_id);
SET pvm = (SELECT alkuaika FROM ottelu WHERE ottelu_id = NEW.ottelu_id);
-- aikalisän voi pitää vain otteluun kuuluva joukkue -- aikalisän voi pitää vain otteluun kuuluva joukkue
IF (NEW.aikalisa_id IS NOT NULL) THEN IF (NEW.aikalisa_id IS NOT NULL) THEN
SET id = (SELECT joukkue_id FROM aikalisa WHERE aikalisa_id = NEW.aikalisa_id); SET id = (SELECT joukkue_id FROM aikalisa WHERE aikalisa_id = NEW.aikalisa_id);
IF (id NOT IN (kj, vj)) THEN IF (id NOT IN (joukkue1, joukkue2)) THEN
CALL `aikalisa_vaara_joukkue`; CALL `aikalisa_vaara_joukkue`;
END IF; END IF;
END IF; END IF;
...@@ -304,7 +304,7 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma` ...@@ -304,7 +304,7 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma`
-- jäähylle voi joutua vain pelaaja, joka on joukueessa joka pelaa kys. ottelua -- jäähylle voi joutua vain pelaaja, joka on joukueessa joka pelaa kys. ottelua
IF (NEW.jaahy_id IS NOT NULL) THEN IF (NEW.jaahy_id IS NOT NULL) THEN
SET id = (SELECT pelaaja_id FROM jaahy WHERE jaahy_id = NEW.jaahy_id); SET id = (SELECT pelaaja_id FROM jaahy WHERE jaahy_id = NEW.jaahy_id);
IF (id NOT IN (SELECT pelaaja_id FROM sopimus WHERE joukkue_id IN (kj, vj))) THEN IF (id NOT IN (SELECT pelaaja_id FROM sopimus WHERE joukkue_id IN (joukkue1, joukkue2) AND pvm BETWEEN alkupvm AND loppupvm)) THEN
CALL `jaahy_vaara_pelaaja`; CALL `jaahy_vaara_pelaaja`;
END IF; END IF;
END IF; END IF;
...@@ -312,7 +312,7 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma` ...@@ -312,7 +312,7 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma`
-- rankkarin voi tehdä vain oikeaan joukkueeseen kuuluva pelaaja -- rankkarin voi tehdä vain oikeaan joukkueeseen kuuluva pelaaja
IF (NEW.rankkari_id IS NOT NULL) THEN IF (NEW.rankkari_id IS NOT NULL) THEN
SET id = (SELECT pelaaja_id FROM rangaistuslaukaus WHERE rankkari_id = NEW.rankkari_id); SET id = (SELECT pelaaja_id FROM rangaistuslaukaus WHERE rankkari_id = NEW.rankkari_id);
IF (id NOT IN (SELECT pelaaja_id FROM sopimus WHERE joukkue_id IN (kj, vj))) THEN IF (id NOT IN (SELECT pelaaja_id FROM sopimus WHERE joukkue_id IN (joukkue1, joukkue2) AND pvm BETWEEN alkupvm AND loppupvm)) THEN
CALL `rankkari_vaara_pelaaja`; CALL `rankkari_vaara_pelaaja`;
END IF; END IF;
END IF; END IF;
...@@ -320,13 +320,13 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma` ...@@ -320,13 +320,13 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma`
IF (NEW.maali_id IS NOT NULL) THEN IF (NEW.maali_id IS NOT NULL) THEN
-- maalin voi tehdä vain otteluun kuuluva joukkue. -- maalin voi tehdä vain otteluun kuuluva joukkue.
SET id = (SELECT joukkue_id FROM maali WHERE maali_id = NEW.maali_id); SET id = (SELECT joukkue_id FROM maali WHERE maali_id = NEW.maali_id);
IF (id NOT IN (kj, vj)) THEN IF (id NOT IN (joukkue1, joukkue2)) THEN
CALL `maali_vaara_joukkue`; CALL `maali_vaara_joukkue`;
END IF; END IF;
-- maalin voi tehdä vain pelaaja, joka kuuluu jompaan kumpaan joukkueeseen. -- maalin voi tehdä vain pelaaja, joka kuuluu jompaan kumpaan joukkueeseen.
SET id = (SELECT pelaaja_id FROM maali WHERE maali_id = NEW.maali_id); SET id = (SELECT pelaaja_id FROM maali WHERE maali_id = NEW.maali_id);
IF (id NOT IN (SELECT pelaaja_id FROM sopimus WHERE joukkue_id IN (kj, vj))) THEN IF (id NOT IN (SELECT pelaaja_id FROM sopimus WHERE joukkue_id IN (joukkue1, joukkue2) AND pvm BETWEEN alkupvm AND loppupvm)) THEN
CALL `maali_vaara_pelaaja`; CALL `maali_vaara_pelaaja`;
END IF; END IF;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment