2

我在我的mysql数据库中设置了一个外键:

ALTER TABLE `gameplayers` ADD CONSTRAINT `FK_GAMENUMBER` FOREIGN KEY (`GameNumber`) REFERENCES `games`(`GameNumber`) ON UPDATE CASCADE ON DELETE CASCADE;

但是,我不确定我是否需要 ON UPDATE 和 ON DELETE。

所以我进入我的 phpAdmin,单击结构选项卡的索引部分中的编辑铅笔图标,我得到了这个:

警告:(“PRIMARY”必须是主键的名称,并且只能是主键的名称!)

是否只需要手动进行更改?即铅笔图标将不起作用。

ALSO:外键对mysql搜索有同样的速度加成效果,类似于索引吗?

4

1 回答 1

8

外键需要索引,因此有效地,外键约束创建和索引,它可以像普通索引一样用于解析查询。

我不确定您使用的是哪个版本的 phpMyAdmin,我认为最新版本支持外键包含,但您似乎没有列出外键索引,并且主键不是您要查找的。但是,您可以使用普通 SQL 修改键:

ALTER TABLE `gameplayers` DROP FOREIGN KEY FK_GAMENUMBER,
    ADD CONSTRAINT `FK_GAMENUMBER` FOREIGN KEY (`GameNumber`) REFERENCES `games`(`GameNumber`) ON UPDATE NO ACTION ON DELETE NO ACTION;
于 2012-04-30T21:37:32.763 回答