phpMyAdmin 外键下拉字段值

Posted

技术标签:

【中文标题】phpMyAdmin 外键下拉字段值【英文标题】:phpMyAdmin foreign key drop-down field values 【发布时间】:2011-01-29 10:00:41 【问题描述】:

我正在使用 phpmyadmin (php & mysql),但在使用外键链接表时遇到了很多麻烦。

countyId(外键)字段为负值。但是,它可以很好地链接到我的其他表,并且级联很好。

当我去添加数据时,会有一个CountyId 的下拉框,值看起来像这样,

-1

1-

这是我的变更声明:

ALTER TABLE Baronies
ADD FOREIGN KEY (CountyId)
REFERENCES Counties (CountyId)
ON DELETE CASCADE

【问题讨论】:

不知何故我不知道这是否与编程有关。您的 SQL 语句看起来不错。我对 phpmyadmin 没有洞察力,对此,您的问题更像是“如何使用应用程序 phpmyadmin”。 这与查询或密钥本身无关。您用于选择值的下拉框没有否定条目,在这种情况下,无论您选择哪一个,您都将输入值“1”。为什么 pMA 以这种方式表示它;我不知道... 【参考方案1】:

正如我在ServerFault 上解释的:

不是负数,phpMYAdmin 的特点是在其旁边显示外键值和自定义描述字段。在引用表(Counties)中,您可以转到“关系视图”,在表下方有一个选择框“Choose field to display”,您可以在其中选择将显示在引用表(Baronies)中 CountyID 值旁边的值)。另见:phpymadminWiki

【讨论】:

【参考方案2】:

您可以使用ForeignKeyDropdownOrder 选项更改此下拉列表的外观。 (见PMA documentation)。

例子:

$cfg['ForeignKeyDropdownOrder'] = array( 'content-id');
/* 'content' is the referenced data, 'id' is the key value. */

【讨论】:

【参考方案3】:

正如 Lex 所说,这正是 phpMyAdmin 显示值的方式。如果您在该下拉框中看到“-1”或“1-”,则它只是 1。

【讨论】:

【参考方案4】:

检查您的表是否使用 MyIsam 引擎。在这种情况下,不支持外键。改用 InnoDB。

【讨论】:

是的,两个表都使用 InnoDB 引擎。 phpmyadmin 默认使用 MyIsame 是否有任何改变?我试过寻找但没有找到任何东西。因为我刚刚将表更改为 InnoDB....这可能是问题吗? mySql 中的默认值为 myISAM,这不是 phpmyadmin 选项。查看有关数据库引擎的 MySql 文档:dev.mysql.com/doc/refman/5.1/en/storage-engines.html 要更改默认引擎,请在 my.cnf 文件中使用选项 default-storage-engine=InnoDB 这个答案与问题有什么关系?【参考方案5】:

转到操作而不是更改 myiasm 到 innoDB 而不是转到

【讨论】:

我无法理解这一点,但它似乎与外键没有太大关系。也许更多细节会很有用。

以上是关于phpMyAdmin 外键下拉字段值的主要内容,如果未能解决你的问题,请参考以下文章

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

如何在 phpmyadmin 中显示外键的内容

如何使用 SQL 和 PHP 从数据库 (phpMyAdmin) 的字段中获取/请求所有值?

MySQL 下拉字段;外键错误号 150

在 phpMyAdmin 中设置外键?

在 phpMyAdmin 中设置外键?