我試圖向預訂表添加約束,預訂可以是航班或住宿,也可以是兩者。未找到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);
和正在產生一個錯誤是唯一的約束限制;
ALTER TABLE HOLIDAY_RESERVATION ADD CONSTRAINT FLIGHT_FK1 FOREIGN KEY (OUT_FLIGHT_ID) REFERENCES FLIGHT (FLI_ID);
我得到
ERROR at line 1:
ORA-02298: cannot validate (U1146815.FLIGHT_FK1) - parent keys not found
出了什麼問題?我知道它與孤兒孩子有關,但我設置了空值,所以我不明白,請告知
根據你的截圖OUT_FLIGHT_ID包含一些數據(不僅是空值)你確定所有這些OUT_FLIGHT_ID是FLI_ID在FLIGHT表嗎? – 2012-03-19 16:13:53
感謝您的指針,我忘記插入另一半的記錄:) – 2012-03-19 16:25:13