Advertisement
Guest User

Untitled

a guest
Jun 20th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.80 KB | None | 0 0
  1. CREATE OR REPLACE TRIGGER comments_bd
  2. before DELETE ON comments FOR each ROW
  3. BEGIN
  4.   decrease_cc.before_d(:old.user_id);
  5. END;
  6. /
  7. CREATE OR REPLACE TRIGGER comments_ad
  8. after DELETE ON comments FOR each ROW
  9. BEGIN
  10.   decrease_cc.after_d;
  11. END;
  12. /
  13. CREATE OR REPLACE PACKAGE decrease_cc AS
  14.   PROCEDURE before_d (
  15.     o_user_id comments.user_id%TYPE
  16.   );
  17.   PROCEDURE after_d;
  18. END;
  19. /
  20. CREATE OR REPLACE PACKAGE BODY decrease_cc AS
  21.   n_user_id comments.user_id%TYPE;
  22.  
  23.   PROCEDURE before_d (
  24.     o_user_id comments.user_id%TYPE
  25.   ) IS
  26.   BEGIN
  27.     n_user_id := o_user_id;
  28.   END;
  29.  
  30.   PROCEDURE after_d IS
  31.     comments_c  NUMBER;
  32.   BEGIN
  33.     SELECT COUNT(*) INTO comments_c FROM comments WHERE user_id = n_user_id;
  34.     UPDATE users SET comments_count = comments_c WHERE id = n_user_id;
  35.   END;
  36. END;
  37. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement