PJF16

Delete Trigger SQL

Apr 19th, 2015
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 0.84 KB | None | 0 0
  1. /*
  2. ANGABE
  3.  
  4. Schreiben Sie alle notwendigen PL/SQL-Anweisungen (z.B. Trigger) um zu verhindern, dass mit einem einzigen DELETE-Befehl mehr als die Hälfte der Datensätze aus der Tabelle EMP gelöscht werden. Geben Sie alle in diesem Zusammenhang notwendigen Anweisungen an.
  5. Hinweis: Es müssen also die Anzahl Datensätze vor und nach der Delete-Operation verglichen werden, um festzustellen, wie viele nun tatsächlich gelöscht worden sind.
  6.  
  7. */
  8. CREATE OR REPLACE TRIGGER delete_trigger
  9. FOR DELETE ON emp
  10. compound TRIGGER
  11.  
  12. anz INTEGER;
  13. anz_after INTEGER;
  14.  
  15. BEFORE statement IS BEGIN
  16.  
  17. SELECT COUNT(*) INTO anz FROM emp;
  18.  
  19. END BEFORE statement;
  20.  
  21. after statement IS BEGIN
  22. SELECT COUNT (*) INTO anz_after FROM emp;
  23.  
  24. IF (anz_after*2 < anz) THEN
  25. raise_application_error (-20001, 'ERROR');
  26. END IF;
  27. END after statement;
  28. END delete_trigger;
Advertisement
Add Comment
Please, Sign In to add comment