主键由两个外键组成?神谕

Los*_*ess 5 sql oracle database-design foreign-keys primary-key

我有关于表创建的问题.我想将"Ono"和"Pno"的属性组合成新表的主键.这些都是外键,每个都来自不同的表.我只使用CONSTRAINT Ono_Pno_PK PRIMARY KEY(Ono,Pno)吗?

到目前为止我用过的东西:

CREATE TABLE ODetails
(
    Ono Number Not Null,
    Pno Number Not Null,
    Qty Number(3) Not Null,
    Creation_Date Date Not Null,
    Created_By VARCHAR(10) Not Null,
    Last_Update_Date Date Not Null,
    Last_Updated_By VARCHAR2(10) Not Null,
    CONSTRAINT Ono_FK FOREIGN KEY (Ono) REFERENCES Orders (Ono),
    CONSTRAINT Pno_FK FOREIGN KEY (Pno) REFERENCES Parts (Pno)
);
Run Code Online (Sandbox Code Playgroud)

Joh*_*Woo 7

只需在约束后添加此行,

CONSTRAINT tb_PK PRIMARY KEY (Ono, Pno)
Run Code Online (Sandbox Code Playgroud)

  • 好答案.它可能会帮助任何想要使用复合主键的人.访问者应该看到以下内容:http://en.wikipedia.org/wiki/Compound_key (3认同)