HeidiSQL 更改了外键,phpMyAdmin 看不到它们

HeidiSQL has changed foreign keys and phpMyAdmin cannot see them

我正在使用 HeidiSQL,因为我发现它比 PMA 更容易构建,但 PMA 有一个很好的基本图表工具。

我有一个名为 test2 的数据库。我想重命名它或理想地克隆它。遗憾的是看不到如何在 Heidi 中制作副本,但可以更改名称。一切顺利。

但是当我进入 PMA 时,所有的外键都不见了。我看过但看不到是否有人遇到过这个问题。

我回到了海蒂,将其重命名为test2:无所事事。然后我停下来重新启动 MySQL 瞧,一切都很好。

我尝试了 PMA 复制数据库功能 - 复制正常但没有 FK。停止并重新启动 mySQL 但不存在。

我大约一年没有做任何数据库工作了。有一次,我从 Heidi 或 PMA 导出了一个中等大小的 newb 数据库,还记得在尝试让数据库重新导入时失去几天的恐惧。

(理想情况下,我会喜欢 "safe" 以安全的方式克隆 mySQL 数据库(包括 FK),以便在远程服务器上重新安装和/或在此处复制。正如我所说的我的经验太可怕了。)


编辑:在 Heidi 中,我在 PMA 中复制的 table 具有所有 FK,但它们在 PMA 中不存在 - 由于缺少更强大的词,这看起来很奇怪!

话虽如此,FKs 显示在图表中,而结构视图显示索引。

当我转到关系视图时,我得到:

这不应该显示另一个 table 的链接吗???

如果我只使用 Heidi,有没有可以结合使用的简单数据库图表工具。我想我记得以前在 PMA 上遇到过可怕的问题,但它确实允许我复制数据库。

使用 HeidiSQL 您还可以复制数据库:

  • 创建空目标数据库
  • 右键单击源数据库,单击将数据库导出为SQL
  • select 输出:数据库,以及select您在步骤 1 中创建的数据库
  • 一定要检查 tables: createdata: insert
  • 单击导出

该导出还应复制外键以及所有其他内容。

PMA 不显示复制的外键这一事实在我看来像是 PMA 中的一个错误。您还可以使用第三个 MySQL 客户端检查外键,例如 MySQL 查询浏览器。

您也可以在此处 post 您的表的 CREATE TABLE 语句,因此我可以尝试在此处重现该问题。