ORA-02291: naruszono więzy spójności - nie znaleziono klucza nadrzędnego

0

Witam, mam problem z projektem z baz danych. Mianowicie gdy już stworzyłam tabele, i chciałam wrzucić do nich dane, wyrzuciło mi błąd przy tworzeniu tabel 'Lot' i 'Lot_rez' o naruszeniu więzów unikatowych. Niestety nie wiem do końca dlaczego tak jest... Proszę o pomoc i wyrozumiałość

-- Table: Lot
CREATE TABLE Lot (
Numer_lotu int NOT NULL,
Samolot_ID_samolot int NOT NULL,
Termin date NOT NULL,
CONSTRAINT Lot_pk PRIMARY KEY (Numer_lotu)
) ;

-- Table: Lot_rez
CREATE TABLE Lot_rez (
Rezerwacja_Numer_rezerwacji int NOT NULL,
Lot_Numer_lotu int NOT NULL,
CONSTRAINT Lot_rez_pk PRIMARY KEY (Rezerwacja_Numer_rezerwacji,Lot_Numer_lotu)
) ;

-- Table: Miejsce
CREATE TABLE Miejsce (
Numer_miejsca int NOT NULL,
Samolot_ID_samolot int NOT NULL,
CONSTRAINT Miejsce_pk PRIMARY KEY (Numer_miejsca)
) ;

-- Table: Osoba
CREATE TABLE Osoba (
ID_osoba int NOT NULL,
Imie varchar2(10) NOT NULL,
Nazwisko varchar2(13) NOT NULL,
CONSTRAINT Osoba_pk PRIMARY KEY (ID_osoba)
) ;

-- Table: Osoba_rez
CREATE TABLE Osoba_rez (
Osoba_ID_osoba int NOT NULL,
Rezerwacja_Numer_rezerwacji int NOT NULL,
CONSTRAINT Osoba_rez_pk PRIMARY KEY (Osoba_ID_osoba,Rezerwacja_Numer_rezerwacji)
) ;

-- Table: Rezerwacja
CREATE TABLE Rezerwacja (
Numer_rezerwacji int NOT NULL,
Liczba_osob int NOT NULL,
Cena_biletu number(6,2) NOT NULL,
CONSTRAINT Rezerwacja_pk PRIMARY KEY (Numer_rezerwacji)
) ;

-- Table: Samolot
CREATE TABLE Samolot (
ID_samolot int NOT NULL,
CONSTRAINT Samolot_pk PRIMARY KEY (ID_samolot)
) ;

-- foreign keys
-- Reference: Lot_Samolot (table: Lot)
ALTER TABLE Lot ADD CONSTRAINT Lot_Samolot
FOREIGN KEY (Samolot_ID_samolot)
REFERENCES Samolot (ID_samolot);

-- Reference: Lot_rezerwacja_Lot (table: Lot_rez)
ALTER TABLE Lot_rez ADD CONSTRAINT Lot_rezerwacja_Lot
FOREIGN KEY (Lot_Numer_lotu)
REFERENCES Lot (Numer_lotu);

-- Reference: Lot_rezerwacja_Rezerwacja (table: Lot_rez)
ALTER TABLE Lot_rez ADD CONSTRAINT Lot_rezerwacja_Rezerwacja
FOREIGN KEY (Rezerwacja_Numer_rezerwacji)
REFERENCES Rezerwacja (Numer_rezerwacji);

-- Reference: Miejsce_Samolot (table: Miejsce)
ALTER TABLE Miejsce ADD CONSTRAINT Miejsce_Samolot
FOREIGN KEY (Samolot_ID_samolot)
REFERENCES Samolot (ID_samolot);

-- Reference: Osoba_rezerwacja_Ooba (table: Osoba_rez)
ALTER TABLE Osoba_rez ADD CONSTRAINT Osoba_rezerwacja_Osoba
FOREIGN KEY (Osoba_ID_osoba)
REFERENCES Osoba (ID_osoba);

-- Reference: Osoba_rezerwacja_Rezerwacja (table: Osoba_rez)
ALTER TABLE Osoba_rez ADD CONSTRAINT Osoba_rezerwacja_Rezerwacja
FOREIGN KEY (Rezerwacja_Numer_rezerwacji)
REFERENCES Rezerwacja (Numer_rezerwacji);

-- End of file.

INSERT ALL
INTO Osoba (ID_osoba, Imie, Nazwisko)
VALUES (0, 'Adam', 'Kowalski')
INTO Osoba (ID_osoba, Imie, Nazwisko)
VALUES (1, 'Jan', 'Nowak')
INTO Osoba (ID_osoba, Imie, Nazwisko)
VALUES (2, 'Anna', 'Sadowska')
INTO Osoba (ID_osoba, Imie, Nazwisko)
VALUES (3, 'Karol', 'Zalewski')
INTO Osoba (ID_osoba, Imie, Nazwisko)
VALUES (4, 'Maria', 'Statuch')
SELECT * FROM dual;

INSERT ALL
INTO Samolot (ID_samolot)
VALUES (00)
INTO Samolot (ID_samolot)
VALUES (01)
INTO Samolot (ID_samolot)
VALUES (02)
INTO Samolot (ID_samolot)
VALUES (03)
INTO Samolot (ID_samolot)
VALUES (04)
SELECT * FROM dual;

INSERT ALL
INTO Rezerwacja (Numer_rezerwacji ,Liczba_osob, Cena_biletu)
VALUES (000, 100, 100.00)
INTO Rezerwacja (Numer_rezerwacji ,Liczba_osob, Cena_biletu)
VALUES (001, 101, 1001.00)
INTO Rezerwacja (Numer_rezerwacji ,Liczba_osob, Cena_biletu)
VALUES (002, 102, 1002.00)
INTO Rezerwacja (Numer_rezerwacji ,Liczba_osob, Cena_biletu)
VALUES (003, 103, 1003.00)
INTO Rezerwacja (Numer_rezerwacji ,Liczba_osob, Cena_biletu)
VALUES (004, 104, 1004.00)
SELECT * FROM dual;

INSERT ALL
INTO Miejsce (Numer_miejsca, Samolot_ID_samolot)
VALUES (10, 00)
INTO Miejsce (Numer_miejsca, Samolot_ID_samolot)
VALUES (11, 01)
INTO Miejsce (Numer_miejsca, Samolot_ID_samolot)
VALUES (12, 02)
INTO Miejsce (Numer_miejsca, Samolot_ID_samolot)
VALUES (13, 03)
INTO Miejsce (Numer_miejsca, Samolot_ID_samolot)
VALUES (14, 04)
SELECT * FROM dual;

--INSERT ALL
--INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
--VALUES (300, 00, TO_DATE('20-11-2019', 'dd-mm-yyyy'))
--INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
--VALUES (301, 01, TO_DATE('31-03-2019', 'dd-mm-yyyy'))
--INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
--VALUES (301, 02, TO_DATE('12-12-2020', 'dd-mm-yyyy'))
--INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
--VALUES (303, 03, TO_DATE('17-01-2018', 'dd-mm-yyyy'))
--INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
--VALUES (304, 04, TO_DATE('28-09-2019', 'dd-mm-yyyy'))
--SELECT * FROM dual;

INSERT ALL
INTO Osoba_rez (Osoba_ID_osoba, Rezerwacja_Numer_Rezerwacji)
VALUES (0, 000)
INTO Osoba_rez (Osoba_ID_osoba, Rezerwacja_Numer_Rezerwacji)
VALUES (1, 001)
INTO Osoba_rez (Osoba_ID_osoba, Rezerwacja_Numer_Rezerwacji)
VALUES (2, 002)
INTO Osoba_rez (Osoba_ID_osoba, Rezerwacja_Numer_Rezerwacji)
VALUES (3, 003)
INTO Osoba_rez (Osoba_ID_osoba, Rezerwacja_Numer_Rezerwacji)
VALUES (4, 004)
SELECT * FROM dual;

INSERT ALL
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (000, 300)
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (001, 301)
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (002, 302)
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (003, 303)
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (004, 304)
SELECT * FROM dual;

Error starting at line : 147 in command -
INSERT ALL
INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
VALUES (300, 00, TO_DATE('20-11-2019', 'dd-mm-yyyy'))
INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
VALUES (301, 01, TO_DATE('31-03-2019', 'dd-mm-yyyy'))
INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
VALUES (301, 02, TO_DATE('12-12-2020', 'dd-mm-yyyy'))
INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
VALUES (303, 03, TO_DATE('17-01-2018', 'dd-mm-yyyy'))
INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
VALUES (304, 04, TO_DATE('28-09-2019', 'dd-mm-yyyy'))
SELECT * FROM dual
Error report -
ORA-00001: naruszono więzy unikatowe (S20741.LOT_PK)

5 rows inserted.

Error starting at line : 173 in command -
INSERT ALL
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (000, 300)
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (001, 301)
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (002, 302)
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (003, 303)
INTO Lot_rez (Rezerwacja_Numer_Rezerwacji, Lot_Numer_lotu)
VALUES (004, 304)
SELECT * FROM dual
Error report -
ORA-02291: naruszono więzy spójności (S20741.LOT_REZERWACJA_LOT) - nie znaleziono klucza nadrzędnego

0
INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
VALUES (301, 01, TO_DATE('31-03-2019', 'dd-mm-yyyy'))
INTO Lot (Numer_lotu, Samolot_ID_samolot, Termin)
VALUES (301, 02, TO_DATE('12-12-2020', 'dd-mm-yyyy'))
0

Cały fragment INSERT ALL INTO Lot masz zaremowany.

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