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

如何创建使用两个外键作为联合主键的数据表?

你要创建的Table3是用于关联产品和客户的多对多关联表,标准SQL实现写法如下:

CREATE TABLE Table3 (
    -- 字段类型需与Table1的idproduct完全一致
    idproduct INT NOT NULL,
    -- 字段类型需与Table2的idclient完全一致
    idclient INT NOT NULL,
    -- 可按需调整字段类型、长度、非空等约束
    des_anything VARCHAR(255),
    -- 设为复合主键,保证同个产品和客户的关联唯一
    PRIMARY KEY (idproduct, idclient),
    -- 关联Table1的外键约束
    FOREIGN KEY (idproduct) REFERENCES Table1(idproduct) 
        ON DELETE CASCADE 
        ON UPDATE CASCADE,
    -- 关联Table2的外键约束
    FOREIGN KEY (idclient) REFERENCES Table2(idclient) 
        ON DELETE CASCADE 
        ON UPDATE CASCADE
);

说明:

  • 外键约束可以保证写入Table3的idproduct必须是Table1中已存在的记录,idclient必须是Table2中已存在的记录,避免出现无效关联的脏数据
  • ON DELETE CASCADE是级联删除配置:如果Table1中某条产品记录被删除,Table3中对应关联的所有记录会自动删除;同理Table2中客户记录被删除也会自动清理关联数据。如果你不需要自动清理,可改为ON DELETE RESTRICT,表示存在关联记录时不允许删除父表的对应数据
  • 如果你的主键是字符串类型,要注意两张父表主键的字符集、排序规则、长度都要和Table3的对应字段保持完全一致,否则外键会创建失败

内容的提问来源于stack exchange,提问作者Sway the Destroyer 'STD'

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:36:06