Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Rysunek
- Lekarz
- -------
- kod_lekarza VARCHAR(5)
- nazwisko VARCHAR(20)
- specjalizacja VARCHAR(20)
- -------
- Lekarz_PK(kod_lekarza)
- |
- | Wiz_lek_FK
- |
- Wizyta
- -------
- nr_wizyty numeric(4)
- koszt DECIMAL(10,2)
- kod_lekarza VARCHAR(5)
- kod_pacjenta numeric(4)
- -------
- Wizyta_PK(nr_wizyty)
- Wiz_lek_FK(kod_lekarza)
- Wiz_pac_FK(kod_pacjenta)
- |
- | Wiz_pac_FK
- |
- Pacjent
- ------
- kod_pacjenta numeric(4)
- nazwisko VARCHAR(30)
- typ_pacjenta VARCHAR(15)
- ------
- Pacjent_PK(kod_pacjenta)
- 2.
- INSERT INTO Lekarz VALUES('A1000','Chudy','Patologia');
- -||-
- INSERT INTO Pacjent VALUES(1010,'Wozniak','NFZ');
- -||-
- INSERT INTO Wizyta VALUES(2000,0.0,'A1000',1010);
- -||-
- 3 i 4.
- CREATE sequence SEQ minvalue 1 maxvalue 100000 increment BY 1;
- CREATE TABLE Typy AS
- (
- SELECT SEQ.NEXTVAL "nr_typu", specjalizacja FROM Lekarz
- )
- ALTER TABLE Typy add constraint Typy_PK primary key (nr_typu);
- ALTER TABLE Lekarz add constraint Lek_typ_FK foreign key (specjalizacja) references Typy(nr_typu);
- UPDATE Lekarz l SET l.specjalizacja = Typy.nr_typu FROM Typy t join Lekarz ON l.specjalizacja = t.specjalizacja;
- 5.
- CREATE OR REPLACE TRIGGER T_Wizyta
- before INSERT ON Wizyta
- FOR each ROW
- DECLARE
- v_typ VARCHAR(15);
- BEGIN
- SELECT rodzaj INTO v_typ FROM Pacjent p join Wizyta w ON p.kod_pacjenta = w.kod_pacjenta WHERE nr_wizyty = :NEW.nr_wizyty;
- IF v_typ IN ('NFZ') THEN
- :NEW.koszt = 0.0;
- END IF
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement