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 外键下拉字段值的主要内容,如果未能解决你的问题,请参考以下文章