我想为来自同一桌游动物的名称和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外键格式错误”。如果消除此外键,则会创建表。所以我知道这是问题所在。我在做什么错了?
答案 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)
键。