You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MealIng表的两个外键指定为联合主键?

修改方案说明

要实现将MealIng表的MealID和IngID设为联合主键,同时保留外键约束,需要调整两处关键内容:

  • 修正外键引用的表名拼写错误(原代码中REFERENCES Meal(MealID)应为REFERENCES Meals(MealID))
  • 明确声明联合主键,同时规范外键约束的写法

修改后的完整代码如下:

CREATE TABLE Meals (
    MealID INTEGER PRIMARY KEY,
    Meal TEXT,
    Type TEXT
);

CREATE TABLE Ing (
    IngID INTEGER PRIMARY KEY,
    IngName TEXT,
    UnitCost NUMERIC
);

CREATE TABLE MealIng (
    MealID INTEGER,
    IngID INTEGER,
    Quantity INTEGER,
    -- 声明联合主键
    PRIMARY KEY (MealID, IngID),
    -- 定义外键约束
    FOREIGN KEY (MealID) REFERENCES Meals(MealID),
    FOREIGN KEY (IngID) REFERENCES Ing(IngID)
);

关键修改点解释

  • 先单独定义MealID和IngID列,再通过PRIMARY KEY (MealID, IngID)指定联合主键,确保两列组合唯一,符合餐品与食材关联的业务逻辑(同一食材不会重复关联到同一餐品)。
  • 单独使用FOREIGN KEY子句明确外键关系,语法更清晰规范,同时修正了原代码中表名的拼写错误。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:15:54