Foreign-Key

如何從三個表中創建主複合鍵?

  • January 7, 2022

假設我有帶有 A.id 的 tableA,帶有 B.id 的 tableB 和帶有 C.id 的 table C。現在我想創建一個具有主複合鍵(A.id,B.id,C.id)的表 D。我怎樣才能做到這一點?

create tableD(

   A.id ..
   B.id ..,
   C.id ..,
   
   primary key (A.id, B.id, C.id),
   foreign key (A.id, B.id, C.id) references ??
)

因此,您有一個包含複合主鍵的表,其中每個元素都引用另一個表的主鍵。

沒有具體細節,讓我們舉一個簡單的例子,一個學生參加由特定老師教授的課程。每個實體(學生、班級、教師)都可以獨立存在(即有自己的表格),並且三者的關聯是實際上課的學生(好吧,我忽略了所有這些日期!)。

create tableA ( id ... primary key ( id ) ) ;
create tableB ( id ... primary key ( id ) ) ;
create tableC ( id ... primary key ( id ) ) ;

create tableD
( a_id ...
, b_id ...
, c_id ...
, foreign key ( a_id ) references tableA ( id ) 
, foreign key ( b_id ) references tableB ( id ) 
, foreign key ( c_id ) references tableC ( id ) 
); 

引用自:https://dba.stackexchange.com/questions/305732