mysql#1005错误号150

时间:2019-03-03 16:36:34

标签: mysql errno

我正在使用phpmyadmin为学校项目创建一些mysql代码,并收到错误消息“#1005-无法创建表 t1 t2 rowMeanWeighted 1 1 6 4.333333 2 2 6 4.666667 3 4 5 4.500000 4 6 3 5.000000 5 7 3 5.666667 6 9 7 8.200000 world_cup(错误号:150”,外键约束为格式不正确“)(详细信息...)”。

我不知道为什么会出错。如果删除GOAL实体,它仍然会给出错误,但带有CARD实体。实际上,它不喜欢我创建的最后4个实体。这与我认为的外键有关。

我尝试过的内容: 确保所有FK和引用的PK都是相同的数据类型。它们完美匹配。 我想不出要尝试的其他方法。

这是明天到期,因此任何帮助将不胜感激!谢谢!

代码如下:

goal

1 个答案:

答案 0 :(得分:1)

这是因为PLAYER上的主键是复合键,所以指向它的外键也必须是复合键。

我的GOAL版本-注意添加了GPCid,并将其包含在外键中:

CREATE TABLE GOAL( 
GPCid varchar(2) not null,
GPno int NOT NULL, 
GMinute varchar(6) NOT NULL, 
GoalType char NOT NULL, 
GGid varchar(2) NOT NULL, 
PRIMARY KEY(GPno, GGid, GMinute) ,
FOREIGN KEY (GPCid,GPno) REFERENCES PLAYER(PCid,Pno),
FOREIGN KEY (GGid) REFERENCES GAME(Gid)
); 

与CARD等类似。