当前位置: 首页 > 面试题库 >

违反-未找到父键02291。00000-“完整性约束

高弘光
2023-03-14
问题内容

嗨,我正在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','N')) NOT NULL, 
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链接。 连结文字


问题答案:

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

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

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

select *
from Ords
where OrderId = 401565981;

select *
from BeltId
where BeltId = 234489212;

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



 类似资料:
  • 我遇到了一些SQL外键的问题。 下面是我的表和插入SQL。 SQL ORA-02291:违反完整性约束-未找到父键 我不知道为什么我的外键是错的?

  • 我试图为和创建会话,这两个表都与相同的外键关联到登录表-但是当我为创建种子时,我得到了错误,在我的另一个问题在这个链接中,我没有以最好的方式解释,但得到了一些关于使用(党-角色-关系模型)和这段代码下面他更多的想法有关已解决的问题链接 创建表和主键 创建表和主键 创建表以及主键和外键 使用表为管理员创建会话的过程: 使用表为用户创建会话的过程: 创建管理会话时,我收到一个错误 我做错了什么?

  • 我最近正在了解这一点,我想知道我是否可以帮助自己,这里是我的数据库: 插入值

  • 所以这里是我的数据库: 插入表格: 批次表不断出现的错误是:ORA-02290:违反了检查约束(EJAY.batches\u DATE\u CHK) 学生表出现的错误是:ORA-02291:违反完整性约束-未找到父键 我感到困惑的是,它只显示在表格中的一些行。教职员工和课程都很好,只有这两个。如果答案很明显,我道歉,我是初学者。请帮帮忙

  • 我试图在过程中插入一个动态值,每次运行它时,都会出现此错误。 “详细信息”:“违反ORA-02291:完整性约束(VIEW.AA_DEFAULT_APP_LIST_FK_AA_APP)-未找到父密钥 这是我的程序。 我在SQLDeveloper中尝试了这个代码,它对我来说很好... 请帮忙。

  • 当我做插入它给我这个错误: ORA-02291:违反完整性约束(H00300581.FK_类)-未找到父密钥 对于注册表中的所有插入,都会发生此错误。我需要帮忙,请帮我修一下。 是否来自表中的外键?可能是因为我什么都试过了,但都没用。 创建表 创建序列 培训师数据 类数据 成员数据 注册资料