问题描述
我已经创建了仅包含外键的表,它已成功创建,但是现在我正在插入表并出现错误。我所有的表在创建成功之前都可以正常工作。
这是我的代码:
insert ALL
INTO PRODUCT_BILLING (DeliveryID,ReturnID,ProductID,BillID) VALUES
('512','null','7113','8115')
INTO PRODUCT_BILLING (DeliveryID,BillID) VALUES
('511','7111','8111')
INTO PRODUCT_BILLING (DeliveryID,'8114')
INTO PRODUCT_BILLING (DeliveryID,BillID) VALUES
('514','ret001','8113')
INTO PRODUCT_BILLING (DeliveryID,BillID) VALUES
('516','7115','8112')
INTO PRODUCT_BILLING (DeliveryID,BillID) VALUES
('515','ret002','7114',BillID) VALUES
('517','7112','8118')
INTO PRODUCT_BILLING (DeliveryID,BillID) VALUES
('513','8117')
INTO PRODUCT_BILLING (DeliveryID,'8116')
select * from DUAL;
select * from PRODUCT_BILLING;
这是我的错误:
Error starting at line : 147 in command -
insert ALL
INTO PRODUCT_BILLING (DeliveryID,'8116')
select * from DUAL
Error report -
ORA-02291: integrity constraint (SYSTEM.SYS_C008513) violated - parent key not found
>>Query Run In:Query Result 6
解决方法
我推测问题是'null'
。这对于密钥来说似乎是非常不寻常的值。
如果需要NULL
,请删除单引号。
我猜想其他值也是数字-它们肯定看起来像数字。您也应该为其删除单引号:
VALUES (512,null,7113,8115)
当然,如果值确实是字符串,请保留单引号!但是只能对字符串和日期常量使用单引号。