我在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,点击Structure选项卡的Index部分中的编辑铅笔图标,我得到了这个:
警告:(“PRIMARY”必须是主键的名称!)
是否必须手动完成更改?即铅笔图标不起作用。
另外:外键对mysql搜索具有相同的速度加成效果,类似于索引?
答案 0 :(得分: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;