You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何基于两个外键创建复合主键?并验证所写SQL代码的正确性

你的SQL实现是完全正确的!

你的这段创建表3的代码完美匹配了你的需求,我来帮你拆解验证一下:

  • 复合主键设置符合预期
    CONSTRAINT pk_myConstraint PRIMARY KEY (pizza, ingredient) 成功将pizzaingredient设为复合主键,这能保证表3中不会出现重复的「披萨-配料」组合,正好适配你这种多对多关联的场景——同一个披萨可以对应多种配料,同一种配料也能用于多个披萨,复合主键能精准约束唯一记录。

  • 外键关联逻辑严谨
    你定义的两个外键约束:

    • FK_pizzaRecipe 关联表1的pizza主键,确保表3里的披萨都是表1中已存在的合法条目;
    • FK_ingredientBase 关联表2的ingredient主键,确保表3里的配料都是表2中已登记的合规配料。
      这两个约束能有效维护数据的参照完整性,避免出现无意义的脏数据。

几点小提醒

  • 要保证表3的pizzaingredient字段的数据类型(varchar(12))和表1、表2中对应的主键字段完全一致,否则外键约束会创建失败;
  • 如果表3已经存在数据,创建这些约束前要先检查现有数据:确保所有pizza值都在表1中存在,所有ingredient值都在表2中存在,同时没有重复的「披萨-配料」组合,不然约束创建会直接报错。

内容的提问来源于stack exchange,提问作者czarniecki

火山引擎 最新活动