![](/img/trans.png)
[英]How do I make a foreign primary key that references to another primary key that is made of multiple foreign keys?
[英]One foreign key references multiple primary keys
我有兩個表,在這兩個表中的每個表中都有一個主鍵列,而另一個表(表3)中有一個外鍵,該外鍵引用了那些在主鍵列上方的表。
現在,我想將記錄插入到表3中(如果這兩個主鍵表中的任何一個存在)。
注意 :我不想創建一個由主鍵表組成的新表,並添加對該新創建表的引用
正如Erwin Brandstetter 在這里所述
要在標題和文本結尾處回答問題:
“我仍然想知道如何使用一個外鍵引用兩個主鍵。”
這不可能。
一個FOREIGN KEY
約束只能指向一個表,而每個表只能有一個 PRIMARY KEY
約束。
或者,您可以在同一列上具有多個 FOREIGN KEY
約束,分別引用一個 (不同)表的一個 PRIMARY KEY
。 (非常有用。)
但是 ,單個PK或FK 可以跨越多列。
FK可以引用目標中任何顯式定義的唯一(一組)列,而不僅僅是PK。 手冊:
外鍵必須引用作為主鍵或形成唯一約束的列。
多列PK或UNIQUE
約束只能由具有匹配列類型的多列FK約束引用。
基本建議:
insert into table3 (col1, col2 ...)
(select col1, col2 ... from table1
union
select col1, col2 ... from table2);
您可以選擇放置where子句或將SQL拆分為2,而不是並集。
這是標准的ANSI SQL,適用於任何DBMS
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.