在表中引用外键时出错

时间:2017-01-06 15:46:09

标签: sql oracle foreign-keys

创建表时出现此错误“Oracle(ORA-02270):此列列表错误没有匹配的唯一键或主键”。 这是第一次创建表格,但我创建了一个表格,即客户订单,其中包含客户ID和产品ID的主键。

create table customer_order(
    customerID NUMBER(8),
    productID Number(8),
    PRIMARY KEY (customerID, productID),
    FOREIGN KEY (customerID) REFERENCES Customer (customerID),
    FOREIGN KEY (productID) REFERENCES Product (productID));

所以这是我原始创建的表,但是我需要创建一个新表来引用此表中的客户ID和产品ID。当我这样做时,我收到此错误。这是我正在尝试创建的表的示例:

create table purchase_order(
    ID Number(8) PRIMARY KEY,
    ProductId Number(8),
    CustomerID Number(8),
    FOREIGN KEY (customerID) REFERENCES customer_order (customerID),
    FOREIGN KEY (productID) REFERENCES customer_order (productID));

1 个答案:

答案 0 :(得分:1)

主键是复合,因此您需要同时引用它们:

create table purchase_order(
    ID Number(8) PRIMARY KEY,
    ProductId Number(8),
    CustomerID Number(8),
    FOREIGN KEY (customerID, ProductId) REFERENCES customer_order(customerID, productId)
);