我正在尝试向预订表添加约束条件,预订可以是航类或住宿,也可以是两者兼而有之。
- 前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
问题是什么?我知道这与孤儿有关,但我设置为空所以我不明白,请指教
最佳答案
该错误表明 FLIGHT
表没有至少一个介于 11 和 18 之间的 FLI_ID
值的条目。您需要插入一行在 FLIGHT
表中查找缺少的任何航类,或更新您的表以具有不同的 OUT_FLIGHT_ID
。
关于sql - 未找到 Oracle 父 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773631/