diff --git a/lab5.sql b/lab5.sql index ef44796..16fab7d 100644 --- a/lab5.sql +++ b/lab5.sql @@ -190,4 +190,29 @@ END SELECT * FROM REJESTR SELECT * FROM PRACOWNICY -DELETE FROM PRACOWNICY WHERE IDENTYFIKATOR=17 \ No newline at end of file +DELETE FROM PRACOWNICY WHERE IDENTYFIKATOR=17 + +-- 7. Korzystając z tabeli produkty stwórz transakcję, która przeniesie wszystkie +-- produkty z magazynu nr 1 do magazynu nr 2. Maksymalna pojemność magazynu +-- nr 2 wynosi 500. Jeżeli powyższa operacja spowoduje przepełnienie magazynu +-- należy ją wycofać i przenieść produkty do magazynu nr 3. +CREATE TABLE PRODUKTY ( + ID_PRODUKT INT IDENTITY(1,1), + ILOSC DECIMAL(8, 2), + NR_MAGAZYNU INT +) + +-- ILOSC NR_MAGAZYNU +INSERT INTO PRODUKTY VALUES (250, 1) +INSERT INTO PRODUKTY VALUES (250, 2) +INSERT INTO PRODUKTY VALUES (250, 3) + +SELECT * FROM PRODUKTY + +BEGIN TRANSACTION zmiana + SAVE TRANSACTION p1 + UPDATE PRODUKTY SET NR_MAGAZYNU=2 WHERE NR_MAGAZYNU=1 + IF (SELECT sum(ILOSC) FROM PRODUKTY WHERE NR_MAGAZYNU=2) > 500 + ROLLBACK TRANSACTION p1 + UPDATE PRODUKTY SET NR_MAGAZYNU=3 WHERE NR_MAGAZYNU=1 +COMMIT TRANSACTION \ No newline at end of file