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

Posted

技术标签:

【中文标题】如何使用 phpMyAdmin 添加指向同一个表的外键?【英文标题】:how do I add a foreign key pointing to the same table using phpMyAdmin? 【发布时间】:2010-10-15 01:44:57 【问题描述】:

我有一个现有的 InnoDB 表,它已经有指向不同表的外键。

但是当我尝试创建一个指向主索引的外键时,我得到一个错误(检查数据类型)。

该表是用户,以 User_Id 作为主表。

我想要一个外键 Manager_ID,它是 User_Id 的 FK。

两个 INT 长度均为 10 未签名...

但我仍然收到数据检查错误...?

【问题讨论】:

你是说给一个表一个外键给它自己 看起来就是这样。但也许我们错了,因为他也谈到了 InnoDB 表。我认为我们可能需要有关数据库模式的更多信息。我的答案可能是也可能不是他想要的。 在同一张表的主键上有一个外键没有错,例如usertable 在信贷员和贷款主管之间有 FK 链接。 那个“长度为10”与整数的大小无关。这是对 mysql 的常见误解。如果您将列定义为 ZEROFILL,则 INT(10) 仅表示它填充到 10 位。 你能发布一下你的表格的简要结构吗? 【参考方案1】:

确保 Manager_ID设置为 NOT NULL

您必须在该字段中允许空值,因为公司中最高层的人将没有经理。

我在 MySQL 板上找到了a post,这可能会有所帮助。

【讨论】:

以上是关于如何使用 phpMyAdmin 添加指向同一个表的外键?的主要内容,如果未能解决你的问题,请参考以下文章

如何在phpmyadmin中关联同一张表的两个字段?

phpMyAdmin 和显示创建表

如何从phpmyadmin中的数据库中的特定表中导出特定列

如何获取将在 PHPMyAdmin 中重新创建 sql 表的查询

如何在不删除数据库的情况下删除 phpMyAdmin 中数据库中所有表的内容?

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