Ondanks dat het bijna weekend heb ik toch nog een belastend vraagje
Ik ben met een opdracht voor school bezig (opdracht schoolzwemmen), maar heb een probleem met de volgende trigger:
het is de bedoeling dat de trigger het volgende doet:
Uitleg trigger:
· De trigger wordt uitgevoerd voordat er records aan de tabel ‘inschrijving’ worden toegevoegd.
· De variabelen ‘hoogste_serie’ en ‘hoogst_baan’ worden gedeclareerd.
· Uit de tabel ‘inschrijving’ worden de hoogste waarden van resp. de series en de banen gehaald. Vervolgens worden deze waarden in de variabelen hoogste_serie en hoogste_baan gezet.
· Dan wordt er gecontroleerd of baan 4 voorkomt in de serie met de hoogste waarde.
- Als baan 4 voorkomt in de serie met de hoogste waarde, dan wordt de waarde van serie
met 1 opgehoogd en wordt de waarde van baan uit de betreffende serie op 1 gezet.
- Als baan 4 niet voorkomt dan blijft de waarde van serie onveranderd en wordt de waarde
van baan met 1 opgehoogd.
Testset:
· Bij programma 8 zijn er 7 deelnemers reeds ingeschreven. Bij 7 deelnemers worden er 2 series gezwommen; serie1 waarbij alle vier de banen bezet zijn, serie2 waarbij er 3 banen bezet zijn. Vervolgens voegen we een nieuwe deelnemer toe en controleren we of de trigger ervoor heeft gezorgd dat de deelnemer wordt ingedeeld in serie2 baan4.
· Bij programma 9 zijn er 4 deelnemers reeds ingeschreven. Bij 4 deelnemers wordt er 1 serie gezwommen waarbij alle vier de banen bezet zijn. Vervolgens voegen we een nieuwe deelnemer toe en controleren we of de trigger ervoor heeft gezorgd dat de deelnemer wordt ingedeeld in serie2 baan1.
als ik deze trigger invoer dan geeft hij geen foutmelding, alleen hij doet helemaal niets.
Ben er nu 2 dagen mee bezig en kom er niet meer uit (gezocht maar niets gevonden)
, iemand een idee wat ik fout doe?
Ik ben met een opdracht voor school bezig (opdracht schoolzwemmen), maar heb een probleem met de volgende trigger:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| CREATE OR REPLACE TRIGGER tr_controleer_serie BEFORE UPDATE OR INSERT ON inschrijving FOR EACH ROW DECLARE hoogste_serie inschrijving.serie%TYPE; hoogste_baan inschrijving.baan%TYPE; BEGIN SELECT max(i.serie), max(i.baan) INTO hoogste_serie, hoogste_baan FROM inschrijving i WHERE i.programma = :new.programma; if hoogste_baan = 4 then :new.serie := hoogste_serie +1; :new.baan := 1; else :new.serie := hoogste_serie; :new.baan := hoogste_baan +1; end if; END; / |
het is de bedoeling dat de trigger het volgende doet:
Uitleg trigger:
· De trigger wordt uitgevoerd voordat er records aan de tabel ‘inschrijving’ worden toegevoegd.
· De variabelen ‘hoogste_serie’ en ‘hoogst_baan’ worden gedeclareerd.
· Uit de tabel ‘inschrijving’ worden de hoogste waarden van resp. de series en de banen gehaald. Vervolgens worden deze waarden in de variabelen hoogste_serie en hoogste_baan gezet.
· Dan wordt er gecontroleerd of baan 4 voorkomt in de serie met de hoogste waarde.
- Als baan 4 voorkomt in de serie met de hoogste waarde, dan wordt de waarde van serie
met 1 opgehoogd en wordt de waarde van baan uit de betreffende serie op 1 gezet.
- Als baan 4 niet voorkomt dan blijft de waarde van serie onveranderd en wordt de waarde
van baan met 1 opgehoogd.
Testset:
· Bij programma 8 zijn er 7 deelnemers reeds ingeschreven. Bij 7 deelnemers worden er 2 series gezwommen; serie1 waarbij alle vier de banen bezet zijn, serie2 waarbij er 3 banen bezet zijn. Vervolgens voegen we een nieuwe deelnemer toe en controleren we of de trigger ervoor heeft gezorgd dat de deelnemer wordt ingedeeld in serie2 baan4.
· Bij programma 9 zijn er 4 deelnemers reeds ingeschreven. Bij 4 deelnemers wordt er 1 serie gezwommen waarbij alle vier de banen bezet zijn. Vervolgens voegen we een nieuwe deelnemer toe en controleren we of de trigger ervoor heeft gezorgd dat de deelnemer wordt ingedeeld in serie2 baan1.
als ik deze trigger invoer dan geeft hij geen foutmelding, alleen hij doet helemaal niets.
Ben er nu 2 dagen mee bezig en kom er niet meer uit (gezocht maar niets gevonden)