我有三张表:
Table 1
pizza
country
base
Table 2
ingredient
type
Table 3
pizza
ingredient
amount
表1中的主键是pizza
,表2中的主键是ingredient
。在表3中,披萨和配料是外键,分别引用表1和表2,我想把它们变成一个组合键。
这是我尝试过的:
CREATE TABLE Table3(
pizza varchar(12),
ingredient varchar(12),
amount int,
CONSTRAINT FK_pizzaRecipe FOREIGN KEY (pizza)
REFERENCES Table1(pizza),
CONSTRAINT FK_ingredientBase FOREIGN KEY (ingredient)
REFERENCES Table2(ingredient),
CONSTRAINT pk_myConstraint PRIMARY KEY (pizza, ingredient)
);
但我不确定这是否是一个正确的实现。
发布于 2021-11-19 05:20:48
不,集合单个组合FK没有任何意义。这是两个独立的外键约束,彼此无关。
您的表完全正确,如下所示:
CREATE TABLE Table3(
pizza varchar(12),
ingredient varchar(12),
amount int,
CONSTRAINT FK_pizzaRecipe FOREIGN KEY (pizza)
REFERENCES Table1(pizza),
CONSTRAINT FK_ingredientBase FOREIGN KEY (ingredient)
REFERENCES Table2(ingredient)
);
https://stackoverflow.com/questions/70034793
复制相似问题