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

如何将复合主键设为引用另一复合主键的外键?

复合主键作为外键引用另一复合主键的正确实现方法

你的问题出在单独为每个字段创建外键约束,而原表的主键是复合组合,外键必须匹配整个复合主键的字段组合与顺序,不能拆分单独约束。

正确的写法是将两个字段作为一个整体定义外键:

create table worker(
    id varchar(50) not null,
    nationality varchar(50) not null,
    PRIMARY KEY (id, nationality),
    FOREIGN KEY (id, nationality) REFERENCES Person (id, nationality)
);

关键说明:

  • 外键字段的顺序必须和被引用表的复合主键顺序完全一致(这里是id在前,nationality在后)
  • 外键字段的数据类型、长度必须和被引用的主键字段完全匹配,否则约束无法生效
  • 这种写法能保证worker表中的每一组(id, nationality)都在Person表中存在,完美实现你需要的"复合主键特化"关系

内容的提问来源于stack exchange,提问作者JOAO VITOR PEREIRA VENTURA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:45:31