Oracle父母密钥未找到

Dav*_*cia 4 sql database oracle

我试图在预订表中添加约束,预订可以是航班或住宿,也可以是两者.

保留

  • 前4个记录预订了内陆航班,外出航班和住宿
  • 接下来的4条记录只预订了一个航班并且已经acc_id设置为NULL
  • 在2个记录中仅预订了住宿,因此在飞行中,外出航班和座位被设置为空.

这是我对此表的约束

ALTER TABLE HOLIDAY_RESERVATION ADD CONSTRAINT HOLIDAY_PK PRIMARY KEY (RESV_ID);
ALTER TABLE HOLIDAY_RESERVATION ADD CONSTRAINT CUSTOMER_FK FOREIGN KEY (BOOKING_CUS_ID) REFERENCES CUSTOMER (CUS_ID);
ALTER TABLE HOLIDAY_RESERVATION ADD CONSTRAINT STAFF_FK3 FOREIGN KEY (EMP_ID) REFERENCES STAFF (EMP_ID);
ALTER TABLE HOLIDAY_RESERVATION ADD CONSTRAINT FLIGHT_FK FOREIGN KEY (IN_FLIGHT_ID) REFERENCES FLIGHT (FLI_ID);
ALTER TABLE HOLIDAY_RESERVATION ADD CONSTRAINT FLIGHT_FK1 FOREIGN KEY (OUT_FLIGHT_ID) REFERENCES FLIGHT (FLI_ID);
ALTER TABLE HOLIDAY_RESERVATION ADD CONSTRAINT ACC_FK FOREIGN KEY (ACC_ID) REFERENCES ACCOMMODATION (ACC_ID);
Run Code Online (Sandbox Code Playgroud)

并且唯一产生错误的约束是;

ALTER TABLE HOLIDAY_RESERVATION ADD CONSTRAINT FLIGHT_FK1 FOREIGN KEY (OUT_FLIGHT_ID) REFERENCES FLIGHT (FLI_ID);
Run Code Online (Sandbox Code Playgroud)

我明白了

ERROR at line 1:
ORA-02298: cannot validate (U1146815.FLIGHT_FK1) - parent keys not found
Run Code Online (Sandbox Code Playgroud)

什么似乎是问题?我明白它与孤儿孩子有关,但我设置的是空的,所以我不明白,请指教

Jus*_*ave 15

该错误表示该FLIGHT表没有至少一个FLI_ID介于11和18之间的值的条目.您需要在FLIGHT表中插入一行以查找缺少的航班或更新您的表以使其有所不同OUT_FLIGHT_ID.