我正在使用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
答案 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等类似。