2010-01-14 36 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) 

参考: