![](/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.