新 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_id
与profiles
表中的user_id
具有相同的数据类型。
伙计,我真的很感谢你的帮助 :) .. 无论如何,profiles 中的 user_id 和 users 中的 id 是同一类型 - int (11) .. 仍然不知道它在哪里不起作用.. 也许会有所帮助,但我在任何表格中都没有内部关系部分
你的桌子也是INNODB
吗?请检查。
也许这些列是有符号/无符号的?以上是关于新 phpmyadmin 中的外键的主要内容,如果未能解决你的问题,请参考以下文章