Advertisement
Guest User

DBS UE6A1

a guest
Apr 25th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.19 KB | None | 0 0
  1. -- 1.) Schreiben Sie einen Datenbanktrigger, der - im Falle des L?schens eines
  2. -- Passagiers - garantiert, dass auch alle Gep?ckst?cke des Passagiers entfernt
  3. -- werden.
  4.  
  5. CREATE OR REPLACE TRIGGER before_deleteFromPassglist_row
  6. before DELETE ON passagierliste
  7. FOR each ROW
  8. DECLARE
  9. v_gepaeckStuecke NUMBER;
  10. BEGIN
  11.   DBMS_OUTPUT.put_line('Person to be deleted '||:old.personID);
  12.  
  13.   SELECT COUNT(gepaeckID)
  14.   INTO v_gepaeckStuecke
  15.   FROM gepaeck
  16.   WHERE personID = :old.personid
  17.   AND flugid = :old.flugid;
  18.  
  19.   IF v_gepaeckStuecke > 0 THEN
  20.   DELETE FROM gepaeck
  21.   WHERE personID = :old.personid
  22.   AND flugid = :old.flugid;
  23.   DBMS_OUTPUT.put_line('Deleted '||v_gepaeckStuecke||' pieces of Gepaeck from PID: '||:old.personID||' on FlugID: '||:old.flugID);
  24.   ELSE
  25.   DBMS_OUTPUT.put_line('PID: '||:old.personID||' checked in without any Gepaeck');
  26.   END IF;
  27. END;
  28. /
  29.  
  30. SELECT * FROM passagierliste p
  31. join gepaeck g ON p.personid = g.personid AND p.flugid = g.flugid;
  32.  
  33. SELECT * FROM gepaeck;
  34.  
  35. DELETE FROM passagierliste
  36. WHERE personid = 6 AND flugid = 1;
  37.  
  38. BEGIN
  39.   DELETE FROM passagierliste
  40.   WHERE flugid = 1;
  41. END;
  42. /
  43. --NICHT VEREGSSEN NACH DIESEM STATEMENT ZU ROLLBACKEN!!!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement