mysql - 如何更改 phpMyAdmin 中的外键

标签 mysql foreign-keys

我已经在我的 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”必须是主键的名称,而且只能是主键的名称!)

修改是否必须手动完成?即铅笔图标将不起作用。

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

最佳答案

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

我不确定您使用的是哪个版本的 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;

关于mysql - 如何更改 phpMyAdmin 中的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390397/

相关文章:

mysql - 如何使用 View 和差分运算符。数据库管理系统

php - 创建类别树的最佳方法

python - 使用 latin1 字符集对表中的 UTF8 数据进行编码

php - 无法在 Laravel 中创建外键

c# - 如何向两个表中插入数据

mysql - 将csv文件导入MySQL中带有外键和主键的3个表

php - 连接到多个表

sql - 外键和主键概念题

MySQL错误代码: 1215.无法添加外键约束(两列的数据类型匹配)

mysql - 在 SQL 中提取字符串的第一个单词