Advertisement
196040

BP lab 5.2 triggers

Jan 18th, 2022
5,833
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.62 KB | None | 0 0
  1. // 1
  2. CREATE TRIGGER ONINSERT
  3. AFTER INSERT ON Narachka
  4. FOR EACH ROW
  5. BEGIN
  6.     UPDATE Market
  7.     SET brNarachki=brNarachki+1
  8.     WHERE ID = NEW.marketID
  9.     ;
  10. END
  11. ;
  12.  
  13. CREATE TRIGGER ONDELETE
  14. AFTER DELETE ON Narachka
  15. FOR EACH ROW
  16. BEGIN
  17.     UPDATE Market
  18.     SET brNarachki=brNarachki-1
  19.     WHERE ID = OLD.marketID
  20.     ;
  21. END
  22. ;
  23.  
  24. CREATE TRIGGER ONUPDATE
  25. AFTER UPDATE OF marketID ON Narachka
  26. FOR EACH ROW
  27. BEGIN
  28.     UPDATE Market
  29.     SET brNarachki=brNarachki+1
  30.     WHERE ID = NEW.marketID
  31.     ;
  32.     UPDATE Market
  33.     SET brNarachki=brNarachki-1
  34.     WHERE ID = OLD.marketID
  35.     ;
  36. END
  37. ;
  38.  
  39. Market(ID, ime, adresa, grad, rejting, rakovoditel, rabotnoVremeOd, rabotnoVremeDo)
  40.  
  41. Korisnik(ID, korisnichkoIme, lozinka, email, adresaDostava)
  42.  
  43. Specijalitet(kod, ime, tip)
  44.  
  45. Prodazhba(marketID*, specijalitetKod*, cena)
  46.  
  47. Narachka(marketID*, specijalitetKod*, korisnikID*, datum)
  48.  
  49.  
  50. Во табелата Market е креиран изведен атрибут „brNarachki“ во кој е зачуван вкупниот број на нарачки кои се направени во даден маркет. Дополнително, пресметана е моменталната вредност на овој атрибут за секој маркет.
  51.  
  52. Да се напише соодветниот тригер/и за одржување на конзистентноста на атрибутот „brNarachki“ при додавање, бришење или ажурирање на записите од кои зависи неговата вредност.
  53.  
  54. // 2
  55.  
  56. CREATE TRIGGER ONINSERT
  57. AFTER INSERT ON Prodazhba
  58. FOR EACH ROW
  59. BEGIN
  60.     UPDATE Market
  61.     SET brSpecijaliteti = brSpecijaliteti+1
  62.     WHERE ID = NEW.marketID
  63.     ;
  64. END
  65. ;
  66.  
  67.  
  68. CREATE TRIGGER ONDELETE
  69. AFTER DELETE ON Prodazhba
  70. FOR EACH ROW
  71. BEGIN
  72.     UPDATE Market
  73.     SET brSpecijaliteti = brSpecijaliteti-1
  74.     WHERE ID = OLD.marketID
  75.     ;
  76. END
  77. ;
  78.  
  79. CREATE TRIGGER ONUPDATE
  80. AFTER UPDATE OF marketID ON Prodazhba
  81. FOR EACH ROW
  82. BEGIN
  83.     UPDATE Market
  84.     SET brSpecijaliteti = brSpecijaliteti+1
  85.     WHERE ID = NEW.marketID;
  86.    
  87.     UPDATE Market
  88.     SET brSpecijaliteti = brSpecijaliteti-1
  89.     WHERE ID = OLD.marketID
  90. ;
  91. END
  92. ;
  93. //Во табелата Market е креиран изведен атрибут „brSpecijaliteti“ во кој е зачуван вкупниот број на специјалитети кои се понудени на продажба од дадениот маркет. Дополнително, пресметана е моменталната вредност на овој атрибут за секој маркет.
  94.  
  95.  
  96. //3
  97.  
  98.  
  99. CREATE TRIGGER ONINSERT
  100. AFTER INSERT ON Bilet
  101. FOR EACH ROW
  102. BEGIN
  103.     UPDATE Patnik
  104.     SET brBileti=brBileti+1
  105.     WHERE embg = NEW.patnik_embg
  106.     ;
  107. END
  108. ;
  109.  
  110. CREATE TRIGGER ONDELETE
  111. AFTER DELETE ON Bilet
  112. FOR EACH ROW
  113. BEGIN
  114.     UPDATE Patnik
  115.     SET brBileti=brBileti-1
  116.     WHERE embg = OLD.patnik_embg
  117.     ;
  118. END
  119. ;
  120.  
  121. CREATE TRIGGER ONUPDATE
  122. AFTER UPDATE OF patnik_embg ON Bilet
  123. FOR EACH ROW
  124. BEGIN
  125.     UPDATE Patnik
  126.     SET brBileti=brBileti-1
  127.     WHERE embg = OLD.patnik_embg
  128.     ;
  129.     UPDATE Patnik
  130.     SET brBileti=brBileti+1
  131.     WHERE embg = NEW.patnik_embg
  132.     ;
  133. END
  134. ;
  135.  
  136.  
  137.  
  138.  
  139. //Во табелата Patnik е креиран изведен атрибут „brBileti“ во кој е зачуван вкупниот број на билети што ги резервирал патникот. Дополнително, пресметана е моменталната вредност на овој атрибут за секој патник..
  140.  
  141.  
  142.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement