Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. -- zwieksz poziom wody i dodaj ostrzezenie
  2.  
  3. CREATE OR REPLACE FUNCTION blabla()
  4. RETURNS VOID
  5. AS
  6. $$
  7. DECLARE
  8. pomiar pomiary%ROWTYPE;
  9. punkt punkty_pomiarowe%ROWTYPE;
  10. nowy_poziom INTEGER;
  11. zwiekszO INTEGER := 10;
  12. BEGIN
  13. FOR pomiar IN SELECT *
  14. FROM pomiary
  15. LOOP
  16. nowy_poziom := pomiar.poziom_wody + zwiekszO;
  17. UPDATE pomiary
  18. SET poziom_wody = poziom_wody + zwiekszO
  19. WHERE id_pomiaru = pomiar.id_pomiaru;
  20.  
  21. SELECT *
  22. INTO punkt
  23. FROM punkty_pomiarowe
  24. WHERE id_punktu = pomiar.id_punktu;
  25.  
  26. CASE
  27. WHEN nowy_poziom > punkt.stan_ostrzegawczy
  28. THEN INSERT INTO ostrzezenia
  29. VALUES (default, punkt.id_punktu, pomiar.czas_pomiaru, pomiar.poziom_wody - punkt.stan_ostrzegawczy, NULL,
  30. nowy_poziom - pomiar.poziom_wody);
  31.  
  32. WHEN nowy_poziom > punkt.stan_alarmowy
  33. THEN INSERT INTO ostrzezenia
  34. VALUES (default, punkt.id_punktu, pomiar.czas_pomiaru, pomiar.poziom_wody - punkt.stan_ostrzegawczy,
  35. pomiar.poziom_wody - punkt.stan_alarmowy, nowy_poziom - pomiar.poziom_wody);
  36.  
  37. ELSE RAISE NOTICE 'nie przekroczono zadnego stanu';
  38. END CASE;
  39. END LOOP;
  40. END
  41. $$
  42. LANGUAGE plpgsql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement