问题 phpMyAdmin外键下拉字段值


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

我得到了该领域的负面价值 countyId (这是外键)。然而,它链接到我的其他表很好,它的级联很好。

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

-1

1-

这是我的改动声明:

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

8550
2018-03-19 10:58


起源

不知怎的,我不知道这是否与编程相关。您的SQL语句看起来很好。我对phpmyadmin没有任何见解,关于这一点,你的问题更像是“如何使用应用程序phpmyadmin”。 - Felix Kling
转到超级用户? - p4bl0
这与查询或密钥本身无关。您选择值的下拉框没有负数条目,在这种情况下,无论您选择哪一个,您都将输入值“1”。为什么pMA以这种方式代表它;我不知道... - rael_kid


答案:


正如我解释的那样 ServerFault

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


9
2017-07-07 09:50





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

例:

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

6
2018-06-20 17:33





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


3
2018-06-21 01:07





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


-1
2018-03-19 11:17



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


进行操作而不是将myiasm更改为innoDB而不是Go


-1
2017-07-20 05:35



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