开发者

Oracle - Having foreign keys in more than one table

开发者 https://www.devze.com 2022-12-16 03:36 出处:网络
I\'m not sure if one can do this but I need to have foreign key reference 2 tables. Table1 has 2 columns (A PK, B)

I'm not sure if one can do this but I need to have foreign key reference 2 tables.

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

Table3 has 3 co开发者_如何学Clumns (A PK, B PK, E) and is made up of the first two table.

What I am hoping to do is something like the following:

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

I hope that this makes some sort of sense.

Thanks

James


A given foreign key constraint describes a relationship from one child table to one parent table.

You can, however, have two foreign key constraints, each pointing to the respective table:

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


Use:

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

Reference:

  • Foreign Key Constraints
0

精彩评论

暂无评论...
验证码 换一张
取 消