2010-01-14 63 views
4

我不確定是否可以做到這一點,但我需要有外鍵引用2表。Oracle - 在多個表中有外鍵

Table1 has 2 columns (A PK, B) 
Table2 has 2 columns (C PK, D) 

表3有3列(A PK,B PK,E)和由前兩個表中的。

我所希望做的是類似如下:

create table Table3  
(
    A Varchar2 (4), 
    C Varchar2 (10), 
    E Char (1), 
    constraint PK_A_C primary key (A, C), 
    CONSTRAINT FK_A_C 
    FOREIGN KEY (A, C) 
    REFERENCES (Table1.A, Table2.B) 
); 

我希望這使得某種意義。

感謝

詹姆斯

回答

4

一個給定的外鍵約束描述了從一個子表到一個父表的關係。

你可以,但是,有兩個外鍵約束,每一個指向相應的表:

create table Table3  
(
    A Varchar2 (4), 
    C Varchar2 (10), 
    E Char (1), 
    constraint PK_A_C primary key (A, C), 
    CONSTRAINT FK_A 
    FOREIGN KEY (A) 
    REFERENCES Table1(A), 
    CONSTRAINT FK_B 
    FOREIGN KEY (C) 
    REFERENCES Table2(B) 
); 
3

用途:

CONSTRAINT fk_a FOREIGN KEY (a) REFERENCES TABLE1(a) 
CONSTRAINT fk_b FOREIGN KEY (c) REFERENCES TABLE2(b) 

參考: