【问题标题】:Can I use a compound primary key as foreign key in Oracle?我可以在 Oracle 中使用复合主键作为外键吗?
【发布时间】:2014-06-02 02:55:18
【问题描述】:

我只是想知道是否可以在表 B 中使用表 A 的复合主键作为外键。

CREATE TABLE A(
   ID INT,
   COD INT,
   CONSTRAINT  PK_INF PRIMARY KEY (ID, COD),
);

CREATE TABLE B(
   REF_NUMBER INT,
   NAME VARCHAR(30),
   CONSTRAINT  FK_INF FOREIGN KEY (REF_NUMBER) REFERENCES A(PK_INF) <- is this correct?
);

提前致谢。

【问题讨论】:

    标签: sql oracle foreign-keys primary-key composite-primary-key


    【解决方案1】:

    您的问题的答案是“是”,您可以使用复合主键作为外键引用。但是,您需要两列。像这样的:

    CREATE TABLE A(
       ID INT,
       COD INT,
       CONSTRAINT  PK_INF PRIMARY KEY (ID, COD),
    );
    
    CREATE TABLE B(
       REF_ID INT,
       REF_CODINT,
       NAME VARCHAR(30),
       CONSTRAINT  FK_INF FOREIGN KEY (REF_ID, REF_COD) REFERENCES A(ID, COD) <- is this correct?
    );
    

    【讨论】:

    • 谢谢。我以为我只需要将我用于 A 中主键的别名写入 B 的引用中。
    • @ditmark12 。 . .引用是通过列本身约束的名称并没有那么有用,除了删除约束。
    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多