-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathHospitalTrigger.sql
More file actions
29 lines (28 loc) · 800 Bytes
/
Copy pathHospitalTrigger.sql
File metadata and controls
29 lines (28 loc) · 800 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
CREATE OR REPLACE TRIGGER przy_usuwaniu_pacjenta
BEFORE DELETE ON pacjent
FOR EACH ROW
DECLARE
BEGIN
UPDATE karta_choroby SET karta_choroby.pacjent = 00000000000 WHERE karta_choroby.pacjent = :old.PESEL;
END;
/
CREATE OR REPLACE TRIGGER przy_dodawaniu_pacjenta
AFTER INSERT ON pacjent
FOR EACH ROW
DECLARE
BEGIN
INSERT INTO karta_choroby VALUES (karta_id_seq.NEXTVAL, :new.PESEL, NULL, NULL, SYSDATE, NULL, NULL, NULL);
END;
/
CREATE OR REPLACE TRIGGER przy_podaniu_leku
BEFORE INSERT ON KART_LEK
FOR EACH ROW
DECLARE
aktualna_ilosc leki.dostepnosc%TYPE;
BEGIN
SELECT l.dostepnosc INTO aktualna_ilosc FROM LEKI l WHERE l.id_leku = :new.podany_lek;
IF aktualna_ilosc>0 THEN
UPDATE LEKI SET DOSTEPNOSC = DOSTEPNOSC - 1 WHERE id_leku = :new.podany_lek;
END IF;
END;
/