MySql,同一表的多个列的外键

时间:2019-06-03 13:45:27

标签: mysql sql

我想为来自同一桌游动物的名称和ID定义一个外键。

CREATE TABLE vet_appointment(
name VARCHAR(15),
ID CHAR(9),
date_tome DATETIME,
ID_client CHAR(9),
ID_vet CHAR(9),
PRIMARY KEY (date_time),
FOREIGN KEY (name, ID) REFERENCES animal(name, ID),
FOREIGN KEY (ID_client) REFERENCES client(ID),
FOREIGN KEY (ID_vet) REFERENCES vet(ID));

这部分代码“ FOREIGN KEY(名称,ID)引用动物(名称,ID)”给我这个错误“ 150外键格式错误”。如果消除此外键,则会创建表。所以我知道这是问题所在。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

我怀疑您真的想要这个:

CREATE TABLE vet_appointment(
    id int auto_increment primary key,
    id_animal int,
    date_time DATETIME,
    ID_cliente CHAR(9),
    ID_vet CHAR(9),
    unique (date_time),
    FOREIGN KEY id_animal) REFERENCES animal(id),
    FOREIGN KEY (ID_cliente) REFERENCES client(ID),
    FOREIGN KEY (ID_vet) REFERENCES vet(ID)
);

该动物的名称不应在此表中。它应该在animal表中。

我还建议为表使用自动递增的整数主键。但是,您可能有理由偏爱char(9)键。