Błąd SQL - ORA-02291

0

Robię projekt na zaliczenie przedmiotu z baz danych i mam taki problem. Stworzyłem hipotetyczną bazę danych dla kliniki stomatologicznej. Schemat ERD stworzyłem w Vertabelo. Jestem na etapie wpisywania danych do tabel. I kiedy chce wpisać dane dotyczące wizyt pojawia mi się błąd.
Wydaje mi się, że dotyczy on relacji dwóch encji (Wizyta i Rezerwacja) widocznych na zdjęciu: https://zapodaj.net/40581f4ec6c82.png.html
Chciałem, żeby ID rezerwacji było automatycznie ID wizyty ale kiedy wpisuje w SQL Developer instrukcje poniżej:

INSERT ALL
INTO REZERWACJA(idRezerwacja, id_pacjenta, dataRezerwacji)
        VALUES(8766771, 45323344,TO_DATE('2022/02/14 11:30', 'yyyy/mm/dd hh24:mi'))
INTO REZERWACJA(idRezerwacja, id_pacjenta, dataRezerwacji)
        VALUES(7988311, 34328978,TO_DATE('2022/02/15 14:00', 'yyyy/mm/dd hh24:mi'))
INTO REZERWACJA(idRezerwacja, id_pacjenta, dataRezerwacji)
        VALUES(6123714, 78788988,TO_DATE('2022/01/7 12:00', 'yyyy/mm/dd hh24:mi'))
INTO REZERWACJA(idRezerwacja, id_pacjenta, dataRezerwacji)
        VALUES(1471152, 23144555,TO_DATE('2022/02/15 13:00', 'yyyy/mm/dd hh24:mi'))
INTO REZERWACJA(idRezerwacja, id_pacjenta, dataRezerwacji)
        VALUES(2871113, 65663312,TO_DATE('2022/02/16 16:30', 'yyyy/mm/dd hh24:mi'))
SELECT * FROM dual;

INSERT ALL
INTO WIZYTA(sala_nazwa, cena, komentarz, idRezerwacja)
        VALUES('Pokój nr 1', 250, 'brak',8766771)
INTO WIZYTA(sala_nazwa, cena, komentarz, idRezerwacja)
        VALUES('Pokój nr 2', 400, 'pacjent niepelnosprawny',7988311)
INTO WIZYTA(sala_nazwa, cena, komentarz, idRezerwacja)
        VALUES('Pokój nr 3', 4000, 'brak',6123714)
INTO WIZYTA(sala_nazwa, cena, komentarz, idRezerwacja)
        VALUES('Pokój nr 4', 500, 'brak',2314455)
INTO WIZYTA(sala_nazwa, cena, komentarz, idRezerwacja)
        VALUES('Pokój nr 2', 350, 'brak',2871113)
SELECT * FROM dual;

To wyskakuje mi błąd: ORA-02291: naruszono więzy spójności (S22811.WIZYTA_REZERWACJA) - nie znaleziono klucza nadrzędnego.

Byłbym bardzo wdzięczny, gdyby ktoś nakreślił mi o co tutaj chodzi, bo niestety utknąłem i bez tego nie pójdę dalej.

0

tak jak opisane tutaj: http://www.dba-oracle.com/t_ora_02291_integrity_constraint_string_string_violated_parent_key_not_found.htm

wypadałoby nadać PRIMARY KEY na IdRezerwacja na tabeli Rezerwacja i FOREIGN KEY na IdRezerwacja na tableli Wizyta. Nie pamiętam komendy w SQL, ale SQL Dev. to ogarnie
zresztą masz to napisane w "schemacie":
screenshot-20220120015711.png

0

@trojanus: No właśnie nawet dodawanie przez SQL developera nie działa - wyskakuje ten sam błąd.

2

Jest pomyłka w danych. Nie ma w rezerwacjach idRezerwacja 2314455, a próbujesz wstawiać taką w wizycie.

0

@xy: Dzięki mistrzu, udało się. Jesteś wielki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1