我将表格设置为InnoDB并可以进入关系视图。但我只能添加约束无关系。是什么导致了这个问题?
服务器版本:5.7.14 - MySQL社区服务器(GPL)
phpMyAdmin版本:4.6.4
答案 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表。