Значения раскрывающегося списка внешнего ключа phpMyAdmin

Я использую phpmyadmin (php и mysql), и у меня много проблем с связыванием таблиц с помощью внешних ключей.

Я получаю отрицательные значения для поля countyId (которое является внешним ключом). Однако он отлично связывается с моей другой таблицей, и это каскадно.

Когда я добавлю данные, появится раскрывающийся список для CountyId, и значения будут выглядеть примерно так:

-1

1-

Вот мое заявление об изменении:

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

person Community    schedule 19.03.2010    source источник
comment
Почему-то я не знаю, связано ли это с программированием или нет. Ваш оператор SQL выглядит нормально. Я не разбираюсь в phpmyadmin, и в связи с этим ваш вопрос больше похож на то, как использовать приложение phpmyadmin.   -  person Felix Kling    schedule 19.03.2010
comment
Это не имеет ничего общего с запросом или самим ключом. В вашем раскрывающемся списке для выбора значений нет отрицательной записи, в этом случае, независимо от того, какой из них вы выберете, вы будете вводить значение «1». Почему pMA представляет это таким образом; Я не знаю...   -  person rael_kid    schedule 06.04.2010


Ответы (5)


Как я объяснил на ServerFault:

Это не отрицательное число, функция phpMYAdmin заключается в том, чтобы отображать значение внешнего ключа и пользовательское поле описания рядом с ним. В ссылочной таблице (графства) вы можете перейти к «представлению отношений», а под таблицей есть поле выбора «Выбрать поле для отображения», в котором вы выбираете значение, которое будет отображаться рядом со значением CountyID в ссылочной таблице (Баронии ). См. также: phpymadminWiki

person Odin    schedule 07.07.2010

Вы можете изменить внешний вид этого раскрывающегося списка, используя параметр ForeignKeyDropdownOrder. (См. документацию PMA).

Пример:

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

Как сказал Лекс, именно так phpMyAdmin отображает значения. Если вы видите «-1» или «1-» в этом раскрывающемся списке, это просто 1.

person Travis Beale    schedule 21.06.2010

Проверьте, используют ли ваши таблицы движок MyIsam. В этом случае внешние ключи не поддерживаются. Вместо этого используйте InnoDB.

person munissor    schedule 19.03.2010
comment
Да, обе таблицы используют движок InnoDB. - person ; 19.03.2010
comment
phpmyadmin по умолчанию использует MyIsame. Можно ли это изменить? Я пытался искать, но ничего не нашел. Потому что я только что изменил таблицы на InnoDB .... может ли это быть проблемой? - person ; 20.03.2010
comment
По умолчанию в mySql используется myISAM, это не опция phpmyadmin. Ознакомьтесь с документацией MySql о механизмах БД по адресу: dev.mysql. .com/doc/refman/5.1/en/storage-engines.html - person munissor; 22.03.2010
comment
Чтобы изменить механизм по умолчанию, используйте параметр default-storage-engine=InnoDB в файле my.cnf. - person munissor; 22.03.2010
comment
Как этот ответ связан с вопросом? - person Petr Peller; 06.12.2010

перейти к работе, чем изменить myiasm на innoDB, чем перейти

person lavkesh    schedule 20.07.2013
comment
Я не могу понять этого, но, похоже, это не имеет большого отношения к внешним ключам. Возможно, некоторые подробности будут полезны. - person ; 20.07.2013