【问题标题】:composite primary key that is also a foreign key that references a primary composite key复合主键也是引用主复合键的外键
【发布时间】:2022-11-21 05:20:17
【问题描述】:

是否可以做一个复合主键,它也是一个引用主复合键的外键?

例如,假设我有一个带有复合键的表 Person:

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

我想制作一个名为 worker 的表,它有一个主键,也是一个外键(就像复合键的特化),例如像这样(虽然它不起作用):

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

我将如何去做这件事?

【问题讨论】:

    标签: mysql syntax foreign-keys primary-key composite-key


    【解决方案1】:

    要制作外键组合,它应该有多个列。

    您制作了两个外键,每个外键一列,而不是复合外键。

    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)
    );
    

    【讨论】:

      猜你喜欢
      • 2017-08-06
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      • 2012-06-13
      相关资源
      最近更新 更多