【发布时间】:2017-05-08 07:38:02
【问题描述】:
我将我的表设置为 InnoDB 并且可以进入关系视图。但我只能添加约束没有关系。是什么原因造成的?
服务器版本:5.7.14 - MySQL 社区服务器 (GPL)
phpMyAdmin 版本:4.6.4
【问题讨论】:
标签: mysql phpmyadmin foreign-keys wamp
我将我的表设置为 InnoDB 并且可以进入关系视图。但我只能添加约束没有关系。是什么原因造成的?
服务器版本:5.7.14 - MySQL 社区服务器 (GPL)
phpMyAdmin 版本:4.6.4
【问题讨论】:
标签: mysql phpmyadmin foreign-keys wamp
问:“我只能添加约束没有关系。是什么原因造成的?”
答:我没有看到任何有问题的行为被报告。
我看到了您已采取的步骤的说明,我猜这些步骤的结果不符合您的期望。
如果您能说明您的期望,我们或许可以提供帮助。
简单地说...
使用 InnoDB,可以通过创建 FOREIGN KEY 约束来表达和执行两个表之间的“关系”。
在关系数据库理论中,“关系”是一组元组。在 RDBMS 中,“关系”被实现为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 的测试表测试该功能,并查看它是否适用于这些表。
我不知道该功能是否应该适用于具有 MISAM 以外的存储引擎的表。我不知道它是否适用于 ENGINE=INNODB 表。
【讨论】: