Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Utwórz procedurę tworzącą wypożyczenie.
- Dane: pID_CZYTELNIKA, pISBN
- Wynik: jeśli:
- • czytelnik o podanym pID_CZYTELNIKA nie przekroczył limitu 3 wypożyczeń oraz
- • ksiązka o podanym pISBN istnieje i
- • dostępny do wypożyczenia jest co najmniej jeden egzemplarz w/w książki
- to:
- • wypożyczenie dostęnego egzemplarza w/w książki w/w czytelnikowi jest zapisywane (z
- bieżącą datą) i
- • zmianie ulega status w/w egzemplarza,
- w pozostałych przypadkach wyświetlane są odpowiednie komunikaty (przekroczony limit, brak
- książki, brak wolnego egzemplarza).
- BEGIN
- SET @ksiazkaIstnieje = (SELECT ISBN FROM KSIAZKA WHERE ISBN = pISBN);
- SET @czytelnikIstnieje = (SELECT ID_CZYTELNIKA FROM CZYTELNIK WHERE ID_CZYTELNIKA = pID_CZYTELNIKA);
- SET @iloscDostepnych = (SELECT COUNT(ISBN) FROM EGZEMPLARZ WHERE ISBN = pISBN AND STATUS = 'DOSTEPNY' GROUP BY ISBN);
- SET @iloscWypozyczen = (SELECT COUNT(ID_CZYTELNIKA) FROM WYPOZYCZENIE WHERE ID_CZYTELNIKA = pID_CZYTELNIKA GROUP BY ID_CZYTELNIKA);
- if(@czytelnikIstnieje IS NOT NULL) THEN
- BEGIN
- IF(@ksiazkaIstnieje IS NOT NULL) THEN
- BEGIN
- IF(@iloscWypozyczen < 3 OR @iloscWypozyczen IS NULL) THEN
- BEGIN
- IF(@iloscDostepnych >= 1 AND @iloscDostepnych IS NOT NULL) THEN
- BEGIN
- SET @EGZ = (SELECT NR_EGZEMPLARZE FROM EGZEMPLARZ WHERE ISBN = pISBN AND STATUS = 'DOSTEPNY' LIMIT 1);
- INSERT INTO WYPOZYCZENIE(NR_EGZEMPLARZA, ID_CZYTELNIKA, DATA) VALUES(@EGZ, pID_CZYTELNIKA, CURRENT_DATE());
- UPDATE EGZEMPLARZ SET STATUS = 'WYPOZYCZONY' WHERE NR_EGZEMPLARZE = @EGZ;
- END;
- ELSE SELECT "Brak dostepnych egzemplarzy do wypozyczenia" AS Error;
- END IF;
- END;
- ELSE SELECT "Ten czytelnik ma już 3 wypozyczenia" AS Error;
- END IF;
- END;
- ELSE SELECT "Ksiazka o podanym ISBN nie istnieje" AS Error;
- END IF;
- END;
- ELSE SELECT "Taki czytelnik nie istnieje" AS Error;
- END IF;
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement