Violated - parent key not found 02291. 00000 - "integrity constraint

Hi, I am developing a database in Oracle SQL dev that is trying to access foriegn keys from another table. I am currently working on an ItemOrdered table that I created with the following CREATE statement
CREATE TABLE ItemOrdered(OrderID varchar2(9) REFERENCES Ords(OrderID),
BeltID varchar2(9) REFERENCES BeltID(BeltID), 
Quantity varchar(4) NOT NULL,
PRIMARY KEY(OrderID, BeltID))

As you can see, I have the following foriegn keys Ords and BeltID.

Now when I try to run the following statement

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

This gives me the following error

violated - parent key not found 02291. 00000 - "integrity constraint (% s.% S) violated - parent key not found"

I provided my Ords CREATE statement if necessary

  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)

And I also provided my BeltID CREATE statement

    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))

I think I don’t understand why I get this error. Is there a clear explanation why?

http, .

+3
2

- , ItemOrdered, :

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

... 401565981 234489212 Ords BelitId - .. 2 :

select *
from Ords
where OrderId = 401565981;

select *
from BeltId
where BeltId = 234489212;

, .

+7

Oracle, , , OrderID BeltID ( , varchars)? , , Oracle barfs , varchar.

insert 
  into ItemOrdered VALUES('401565981', '234489212','2')

, , insert. , :

insert 
  into ItemOrdered(OrderID,BeltID,Quantity) values('401565981', '234489212','2')
+1

Source: https://habr.com/ru/post/1778734/


All Articles