Oracle – Fremdschlüssel in mehr als einer Tabelle

Ich bin nicht sicher, ob man das tun kann, aber ich muss einen Fremdschlüssel 2 referencetabellen haben.

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

Tabelle 3 hat 3 Spalten (A PK, B PK, E) und besteht aus den ersten beiden Tabellen.

Was ich mir vorgenommen habe, ist etwas wie das Folgende:

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

Ich hoffe, das macht Sinn.

Vielen Dank

James

Solutions Collecting From Web of "Oracle – Fremdschlüssel in mehr als einer Tabelle"

Eine gegebene Fremdschlüsseleinschränkung beschreibt eine Beziehung von einer Kindtabelle zu einer Elterntabelle.

Sie können jedoch zwei Fremdschlüsselbeschränkungen verwenden, die jeweils auf die jeweilige Tabelle verweisen:

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

Benutzen:

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

reference:

  • Fremdschlüsseleinschränkungen