Oracle - 在多个表中具有外键

时间:2010-01-14 05:18:00

标签: sql oracle

我不确定是否可以这样做,但我需要有外键引用2表。

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)
);

我希望这有点道理。

由于

詹姆斯

2 个答案:

答案 0 :(得分: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)
);

答案 1 :(得分:3)

使用:

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

参考: