Phpmyadmin版本4:关系视图有时不显示外键约束

时间:2014-09-02 05:10:50

标签: mysql database phpmyadmin foreign-keys

我有一个我建立的数据库。数据库中的每个表都是InnoDb。有几个表有外键约束,我将它们设置为On Delete = Cascade。当我使用早期版本的phpmyadmin时,使用它们很简单:我只是转到表的Structure选项卡,单击Relation View链接,只要我在上面设置了正确的索引。正确的列,我可以设置我认为合适的外键。

升级到版本4后,它变成了一场噩梦。对于某些表,我转到关系视图,一切都很好。但对于其他人 - 即使他们已经设置了外键约束 - 我也看不到与他们合作的任何选择。

更糟糕的是,我甚至尝试删除索引并重新添加它们,只是给出了以下错误:Cannot drop index [index_name]: needed in a foreign key constraint.所以除非我弄错了,否则约束就在那里,但phpmyadmin拒绝向我展示。

我有什么必须做才能让它们再次出现吗?至少可以说这是非常令人沮丧的:现在之前工作正常的东西并不能归功于升级。

4 个答案:

答案 0 :(得分:15)

好的,在玩了一下桌子之后,我想出了发生了什么。外键约束选项不会显示的唯一时间是表名包含大写字母。至少可以说非常令人沮丧。

答案 1 :(得分:1)

我刚刚为phpmyadmin提交了一份错误报告:https://github.com/phpmyadmin/phpmyadmin/issues/11461

这应该是一个简单的解决方案。

答案 2 :(得分:0)

发生这种情况是因为我在数据库名称中使用了“&”。

答案 3 :(得分:0)

在我的例子中,我使用了两列(A 和 B)作为其他表的外键,然后我还使用了([A,B])的复合唯一键,phpMyAdmin 不显示现有的外键A 列但确实显示了 B 列。 我的系统版本如下: 服务器版本:5.7.30 - MySQL 社区服务器 (GPL)