Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- zwieksz poziom wody i dodaj ostrzezenie
- CREATE OR REPLACE FUNCTION blabla()
- RETURNS VOID
- AS
- $$
- DECLARE
- pomiar pomiary%ROWTYPE;
- punkt punkty_pomiarowe%ROWTYPE;
- nowy_poziom INTEGER;
- zwiekszO INTEGER := 10;
- BEGIN
- FOR pomiar IN SELECT *
- FROM pomiary
- LOOP
- nowy_poziom := pomiar.poziom_wody + zwiekszO;
- UPDATE pomiary
- SET poziom_wody = poziom_wody + zwiekszO
- WHERE id_pomiaru = pomiar.id_pomiaru;
- SELECT *
- INTO punkt
- FROM punkty_pomiarowe
- WHERE id_punktu = pomiar.id_punktu;
- CASE
- WHEN nowy_poziom > punkt.stan_ostrzegawczy
- THEN INSERT INTO ostrzezenia
- VALUES (default, punkt.id_punktu, pomiar.czas_pomiaru, pomiar.poziom_wody - punkt.stan_ostrzegawczy, NULL,
- nowy_poziom - pomiar.poziom_wody);
- WHEN nowy_poziom > punkt.stan_alarmowy
- THEN INSERT INTO ostrzezenia
- VALUES (default, punkt.id_punktu, pomiar.czas_pomiaru, pomiar.poziom_wody - punkt.stan_ostrzegawczy,
- pomiar.poziom_wody - punkt.stan_alarmowy, nowy_poziom - pomiar.poziom_wody);
- ELSE RAISE NOTICE 'nie przekroczono zadnego stanu';
- END CASE;
- END LOOP;
- END
- $$
- LANGUAGE plpgsql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement