[SQL] Tworzenie funkcji i wyzwalaczy |
[SQL] Tworzenie funkcji i wyzwalaczy |
19.05.2019, 15:38:32
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 19.05.2019 Ostrzeżenie: (0%) |
Witam. Moim zadaniem jest stworzenie funkcji i wyzwalacza, które podczas wypożyczenia płyty wypiszą danemu klientowi wszystkie przez niego wypożyczone płyty wraz z ich ceną.
mam kilka tabel: tabela klient imie | nazwisko | nr_dowodu | id_klienta ---------+----------+------------+------------ Jan | Kowalski | DB230398 | 1 Adrian | Wicki | AFF456433 | 5 Iwona | Wisniak | AFF456434 | 6 Jolanta | Ponicka | AFF456452 | 7 Adam | Brzeski | AFG456432 | 8 tabela wypozyczenie kto_wypozyczyl | co_wypozyczyl | data_wypozyczenia | data_zwrotu ----------------+---------------+----------------------------+------------- 1 | 5 | 2019-04-08 11:20:48.860313 | 5 | 6 | 2019-04-08 11:22:44.94124 | 6 | 4 | 2019-04-08 11:22:58.236129 | 7 | 5 | 2019-04-08 11:23:12.188344 | tabela plyta tytul | numer | cena | gatunek -------------------+-------+-------+--------- Shrek | 1 | 15.00 | 1 Calineczka | 3 | 15.00 | 4 Hellboy | 6 | 15.00 | 9 Constantine | 5 | 20.00 | 5 Szeregowiec Dolot | 4 | 10.00 | 4 Piraci z Karaibow | 2 | 20.00 | 7 Mam napisaną taką funkcję: CREATE OR REPLACE FUNCTION newwyp() returns TRIGGER LANGUAGE 'plpgsql' AS ' DECLARE x int; BEGIN IF (SELECT id_klienta FROM klient WHERE id_klienta=NEW.kto_wypozyczyl) IS NOT NULL THEN x= (SELECT co_wypozyczyl FROM wypozyczenie WHERE kto_wypozyczyl=NEW.kto_wypozyczyl); RAISE NOTICE ''Wypozyczone plyty to %'',x; RETURN NEW; ELSE RAISE NOTICE ''Klient nie ma wypozyczen''; RETURN NULL; END IF; END; '; oraz wyzwalacz CREATE TRIGGER aktualizacja AFTER INSERT ON wypozyczenie FOR EACH ROW EXECUTE PROCEDURE newwyp(); W jaki sposób mogę zrobić to, żeby funkcja po dodaniu wypożyczenia dla danego klienta zwracała jego wszystkie wykonane do tej pory wypożyczenia? |
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 07:24 |