ks_master

ponovljeni triggeri

Jan 13th, 2020
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. PRE INSERTA PLATNE KARTICE
  2. CREATE OR REPLACE FUNCTION platnaKartica()
  3. RETURNS TRIGGER AS
  4. $$
  5. BEGIN
  6. NEW.ime = (SELECT ime FROM turista WHERE turista_id = NEW.turista_id);
  7. RETURN NEW;
  8. END;
  9. $$
  10. LANGUAGE 'plpgsql';
  11.  
  12.  
  13. CREATE TRIGGER pre_inserta_platne_kartice
  14. BEFORE INSERT ON platna_kartica
  15. FOR EACH ROW
  16. EXECUTE PROCEDURE platnaKartica();
  17.  
  18.  
  19.  
  20.  
  21. POSLE IZMENE TURISTE
  22.  
  23. CREATE OR REPLACE FUNCTION posleIzmeneTuriste()
  24. RETURNS TRIGGER AS
  25. $$
  26. BEGIN
  27. IF NEW.ime <> OLD.ime THEN
  28. ALTER table platna_kartica DISABLE TRIGGER nakon_izmene_platne_kartice;
  29. UPDATE platna_kartica
  30. SET ime = NEW.ime
  31. WHERE turista_id = NEW.turista_id;
  32. ALTER table platna_kartica ENABLE TRIGGER nakon_izmene_platne_kartice;
  33. END IF;
  34. RETURN NEW;
  35. END;
  36. $$
  37. LANGUAGE 'plpgsql';
  38.  
  39. CREATE TRIGGER posle_izmene_turiste
  40. AFTER UPDATE ON turista
  41. FOR EACH ROW
  42. EXECUTE PROCEDURE posleIzmeneTuriste();
  43.  
  44.  
  45.  
  46. POSLE IZMENE PLATNE KARTICE
  47.  
  48. CREATE OR REPLACE FUNCTION nakonIzmenePlatneKartice()
  49. RETURNS TRIGGER AS
  50. $$
  51. BEGIN
  52. IF NEW.ime <> OLD.ime
  53. THEN
  54. RAISE EXCEPTION 'Ne mozete izmeniti zadatu kolonu!';
  55. END IF;
  56. RETURN NEW;
  57. END;
  58.  
  59. $$
  60. LANGUAGE 'plpgsql';
  61.  
  62. CREATE TRIGGER nakon_izmene_platne_kartice
  63. AFTER UPDATE ON platna_kartica
  64. FOR EACH ROW
  65. EXECUTE PROCEDURE nakonIzmenePlatneKartice();
Add Comment
Please, Sign In to add comment