违反-未找到父键0229100000-“完整性约束

问题描述

由于您在创建表ItemOrdered时指定的外键约束,因此在执行此插入时:

INSERT INTO ItemOrdered VALUES(401565981,234489212,'2')

…值401565981和234489212必须分别对应于Ords和BelitId表中的键值-即这两个查询应返回行:

select *
from Ords
where OrderId = 401565981;

select *
from BeltId
where BeltId = 234489212;

错误消息表明情况并非如此。

解决方法

嗨,我正在Oracle SQL开发人员中开发数据库,​​试图从另一个表访问foriegn键。我目前正在使用以下CREATE语句创建的ItemOrdered表

CREATE TABLE ItemOrdered(OrderID varchar2(9) REFERENCES Ords(OrderID),BeltID varchar2(9) REFERENCES BeltID(BeltID),Quantity varchar(4) NOT NULL,PRIMARY KEY(OrderID,BeltID))

如您所见,我具有以下前键Ords和BeltID。

现在,当我尝试运行以下语句时

INSERT INTO ItemOrdered VALUES(401565981,234489212,'2')

它给了我以下错误

违反-找不到父密钥02291。00000-“违反完整性约束(%s。%s)-找不到父密钥”

如果需要,我已经提供了Ords CREATE语句

  CREATE TABLE Ords(OrderID varchar2(9) PRIMARY KEY,CustomerID varchar(9) REFERENCES Customers(CustomerID),Expected_Delivery_Date date DEFAULT sysdate NOT NULL,Actual_Delivery_Date date DEFAULT sysdate NOT NULL,Payment_Due_Date date DEFAULT sysdate NOT NULL,Order_Date date DEFAULT sysdate NOT NULL,Price Varchar(10),Order_Placed varchar2(1) CONSTRAINT OrderPlaced 
CHECK(Order_Placed IN('Y','N')) NOT NULL,Order_Confirmed varchar2(1)
    CONSTRAINT Order_Confirmed CHECK(Order_Confirmed IN('Y',Order_Completed varchar2(1) CONSTRAINT Order_Completed
    CHECK(Order_Completed IN('Y','N')) NOT NULL)

我还提供了我的BeltID CREATE语句

    CREATE TABLE BeltID(BeltID varchar2(9) PRIMARY KEY,BeltLengthID varchar2(9) REFERENCES BeltLength(BeltLengthID),ColourID varchar2(9) REFERENCES Colour(ColourID),DesignID varchar2(9) REFERENCES Design(DesignID),ComponentID varchar2(9) REFERENCES Component(ComponentID))

我似乎不太明白为什么会出现此错误。为什么有明确的解释?

这是我正在尝试做的http链接。 连结文字

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...