Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 0.99 KB | None | 0 0
  1. CREATE OR REPLACE TRIGGER PutOnWaitingList
  2.     INSTEAD OF INSERT ON CourseEnrollmentInsert
  3.     FOR EACH ROW
  4.     DECLARE
  5.         studentCount INTEGER;
  6.         courseCapacity INTEGER;
  7.     BEGIN
  8.         SELECT COUNT (*) INTO studentCount
  9.         FROM   CourseEnrollmentInsert CEI
  10.         WHERE  CEI.course = :NEW.course;
  11.            
  12.         SELECT numStudents INTO courseCapacity
  13.         FROM   CourseEnrollmentInsert CEI
  14.         WHERE  CEI.course = :NEW.course
  15.                AND ROWNUM = 1;
  16.         INSERT INTO Log (text, TIME) VALUES ('Before if values: ' || TO_CHAR(studentCount) || ' and ' || TO_CHAR(courseCapacity), SYSTIMESTAMP);
  17.         -- XXX Above
  18.         IF  studentCount >= courseCapacity THEN
  19.             INSERT INTO WaitingFor(course, student, since) VALUES
  20.                 (:NEW.course, :NEW.student, SYSTIMESTAMP);
  21.             INSERT INTO Log (text, TIME) VALUES ('Course full', SYSTIMESTAMP);
  22.         ELSE
  23.             INSERT INTO CourseEnrollment(course, student) VALUES
  24.                 (:NEW.course, :NEW.student);
  25.             INSERT INTO Log (text, TIME) VALUES ('Course not full', SYSTIMESTAMP);
  26.         END IF;
  27.     END PutOnWaitingList;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement