无法在phpMyAdmin的关系视图中设置关系

时间:2016-12-22 16:02:21

标签: mysql phpmyadmin foreign-keys wamp

我将表格设置为InnoDB并可以进入关系视图。但我只能添加约束无关系。是什么导致了这个问题?

服务器版本:5.7.14 - MySQL社区服务器(GPL)

phpMyAdmin版本:4.6.4

WampServer版本:3.0.6 enter image description here

这是一张图片,我希望视图如何,缺少“内部关系”表: enter image description here

1 个答案:

答案 0 :(得分:2)

问:“我只能添加约束没有关系。导致问题的原因是什么?”

答:我没有看到任何有问题的行为被报道。

我看到了您所采取的步骤的描述,我猜这些步骤的结果不符合您的期望。

如果你能澄清你的期望,我们可能会提供帮助。

...简言之

使用InnoDB,可以通过创建FOREIGN KEY约束来表达和强制执行两个表之间的“ relationship ”。

在关系数据库理论中,“ relation ”是一组元组。在RDBMS中,“ relation ”实现为TABLE

如果描述了您正在尝试实现的目标,并且对您正在观察的问题行为进行更准确的描述,则可以提供一些帮助。

修改

使用InnoDB,我们可以使用数据库中定义的外键来表示表之间的关系。它们存储在InnoDB表定义中。

PHPMyAdmin“内部关系”用于MyISAM表,它不支持外键。

验证PHPMyAdmin是否配置为存储“内部关系”。它将配置存储在名为pma__relation的表中。实际的表名在PHPMyAdmin的配置中指定。

https://docs.phpmyadmin.net/en/latest/config.html

如果启用了该功能,配置文件中应该有这样的一行:

$cfg['Servers'][$i]['relation'] = 'pma__relation';

(请参阅正在运行的PHPMyAdmin版本的文档。)

并验证数据库中是否存在pma__relation表。

如果所有内容都配置正确,那么我将使用几个使用ENGINE = MYISAM的测试表测试该功能,并查看它是否适用于这些表。

我不知道该功能是否适用于具有除MYISAM之外的存储引擎的表。我不知道它是否适用于ENGINE = INNODB表。