新 phpmyadmin 中的外键

Posted

技术标签:

【中文标题】新 phpmyadmin 中的外键【英文标题】:Foregin Keys in NEW phpmyadmin 【发布时间】:2016-07-19 19:14:25 【问题描述】:

我真的很绝望。我不得不为最新的服务器重新安装旧的 wamp 服务器,现在我不知道如何在 phpmyadmin 中使用外键。现在,我有 Wamp 3.0.0 和 mysql 5.7.9。

我有 2 个表格 - 用户、个人资料。在配置文件中,我有一个名为 user_id 的列,它必须引用 users 表。我该怎么做?

在旧的 phpmyadmin 中,我只是单击了关系视图,在那里我看到了设置外键的所有选项。但是在这个新的 phpmyadmin 中我没有这样的选项。现在,它看起来像这样:

当我点击“关系视图”按钮时,我得到如下信息:

但是我可以在哪里简单地将外键添加到用户表?我必须做什么? 当然我在所有表上都设置了 InnoDB,profiles(id) 和 users(id) 上的主键,profiles 表中的 user_id 是唯一的。

我的第二个问题是 - 表中所有外键的列表在哪里?

【问题讨论】:

关系视图允许您添加约束(外键)。在您发布的第二个屏幕截图中,您可以输入约束名称、放置约束的列并选择约束应使用的表 + 列。 那么,您是在告诉我,我已经为表用户创建了外键?这很奇怪,因为在我的 PHP 应用程序中它不起作用.. 您使用的是foreign key constraints。在Foreign Key constraints 部分上方有一个Internal Relations 部分。这就是您在视觉上设置外键的地方。 对不起,我现在不太了解你。内部关系部分在哪里??我在任何地方都看不到它。在旧的 phpMyAdmin 中,当我点击“索引”时 - 有一个所有外键的列表。但是在这个新版本中,当我点击索引时,只有 PRIMARY KEY (id) 和 UNIQUE (user_id),仅此而已.. 应该也有所有的外键,不是吗? 顺便问一下,您使用的是哪个版本的Phpmyadmin?见图片here 【参考方案1】:

您也可以手动操作而不是视觉操作。

ALTER TABLE profiles ADD CONSTRAINT fk_users_id 
FOREIGN KEY (user_id) REFERENCES users(user_id)

【讨论】:

我也试过这个。但是我收到了这个错误:#1215 - 无法添加外键约束 确保users 表中的user_idprofiles 表中的user_id 具有相同的数据类型。 伙计,我真的很感谢你的帮助 :) .. 无论如何,profiles 中的 user_id 和 users 中的 id 是同一类型 - int (11) .. 仍然不知道它在哪里不起作用.. 也许会有所帮助,但我在任何表格中都没有内部关系部分 你的桌子也是INNODB吗?请检查。 也许这些列是有符号/无符号的?

以上是关于新 phpmyadmin 中的外键的主要内容,如果未能解决你的问题,请参考以下文章

在 phpMyAdmin 中消失的外键

如何使用 phpMyAdmin 添加指向同一个表的外键?

phpmyadmin - 如何设置依赖于外键的字段值?

将相同的外键添加到 4 行 Laravel

是否可以将一个表中的主键引用为超过 2 个表的外键约束?

在 phpMyAdmin 中设置外键