Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] Tworzenie funkcji i wyzwalaczy
Hlopek
post 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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 23:40