RAPID RALLY adatbázis
A példa gyakorlásához hozza létre az adatbázist a fájlban lévő utasításokkal!
A példa gyakorlásához hozza létre az adatbázist a fájlban lévő utasításokkal!
Hozzuk létre a RAPID RALLY autóversenyre benevezett versenyzők tábláját. Készítsünk triggert, amely minden beillesztett versenyzőhöz megkísérel alábbi feltételeknek megfelelő partnert keresni:
Tötse fel a partner oszlopokat(!) a feltételeknek megfelelően.
CREATE OR REPLACE TRIGGER rally_insert
BEFORE INSERT ON rally
FOR EACH ROW
DECLARE
CURSOR versenyzők IS SELECT * FROM rally WHERE partner = '---';
BEGIN
FOR v IN versenyzők LOOP
IF v.nemzetiség = :NEW.nemzetiség
AND ABS(v.minősítés - :NEW.minősítés) < 20
AND v.feladatkör != :NEW.feladatkör THEN
:NEW.partner := v.név;
UPDATE rally SET partner = :NEW.név WHERE név = v.név;
EXIT;
END IF;
END LOOP;
END;
/
CREATE OR REPLACE TRIGGER rally_insert
BEFORE INSERT ON rally
FOR EACH ROW
DECLARE
partnerneve VARCHAR2(20);
CURSOR versenyzők IS SELECT név FROM rally WHERE partner = '---'
AND nemzetiség = :NEW.nemzetiség
AND feladatkör != :NEW.feladatkör
AND ABS(minősítés - :NEW.minősítés) < 20;
BEGIN
OPEN versenyzők;
FETCH versenyzők INTO partnerneve;
IF versenyzők%FOUND THEN
:NEW.partner := partnerneve;
UPDATE rally SET partner = :NEW.név WHERE név = partnerneve;
END IF;
CLOSE versenyzők;
END;
/
Licensed under the Creative Commons Attribution Share Alike License 4.0