Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.58 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION limit_download_func() RETURNS TRIGGER
  2.     AS $$
  3.     BEGIN
  4.         IF ((SELECT COUNT(*) FROM download WHERE user_id = NEW.user_id AND create_at = now()) < 2) THEN
  5.             INSERT INTO "download" ("object_id", "user_id") VALUES (NEW.object_id, NEW.user_id);
  6.             RETURN NEW;
  7.         ELSE
  8.             RAISE EXCEPTION
  9.                 'Превышено количество максимальных обращений для юзера %!', NEW.user_id;
  10.         END IF;
  11.     END;
  12. $$ LANGUAGE plpgSQL;
  13.  
  14.  
  15. CREATE TRIGGER limit_download
  16.     before INSERT ON download
  17.         FOR STATEMENT EXECUTE PROCEDURE limit_download_func();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement