2010-03-19 13 views
11

Ich benutze phpmyadmin (php & mysql) und ich habe eine Menge Probleme beim Verknüpfen der Tabellen mit Fremdschlüsseln.phpMyAdmin Fremdschlüssel Drop-Down-Feld Werte

Ich bekomme negative Werte für das Feld countyId (das ist der Fremdschlüssel). Allerdings ist es mit meiner anderen Tischordnung verbunden und es kaskadiert gut.

Wenn ich Daten hinzufügen wird es eine Drop-Box für die CountyId sein und die Werte in etwa so aussehen,

-1 

1- 

Hier ist meine alte Aussage:

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

Irgendwie weiß ich nicht, ob dies im Zusammenhang Programmierung oder nicht. Ihre SQL-Anweisung sieht gut aus. Ich habe keinen Einblick in phpmyadmin und Ihre Frage liest sich daher eher wie "wie verwende ich die Anwendung phpmyadmin". –

+0

Goto SuperUser? – p4bl0

+4

Dies hat nichts mit der Abfrage oder dem Schlüssel selbst zu tun. Ihre Dropdown-Box zur Auswahl der Werte hat keinen negativen Eintrag. In diesem Fall geben Sie den Wert "1" ein. Warum pMA es auf diese Weise darstellt; Ich weiß nicht ... –

Antwort

-1

überprüfen Sie, ob Ihre Tabellen verwenden MyIsam-Engine. In diesem Fall werden Fremdschlüssel nicht unterstützt. Verwenden Sie stattdessen InnoDB.

+0

Ja beide Tabellen verwenden InnoDB-Engine. –

+0

phpmyadmin verwendet standardmäßig MyIsame, gibt es das, um dies zu ändern? Ich habe versucht zu suchen, aber habe nichts gefunden. Weil ich gerade die Tabellen zu InnoDB geändert habe .... könnte das das Problem sein? –

+0

Der Standardwert in mySql ist myISAM, dies ist keine phpmyadmin-Option. Überprüfen Sie in der MySql-Dokumentation über die DB-Engines unter: http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html – munissor

6

Sie können das Aussehen dieses Dropdown-Menüs mit der Option ForeignKeyDropdownOrder ändern. (Siehe die PMA documentation).

Beispiel:

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

Als Lex sagte, das ist nur die Art und Weise phpMyAdmin zeigt die Werte. Wenn Sie sehen, „-1“ oder „1-“ in dieser Drop-Down-Box, es ist nur 1.

9

Wie ich auf ServerFault erklärt:

Es ist nicht negaitve Nummer, die Funktion von phpMyAdmin ist Fremdschlüssel zeigen Wert und ein benutzerdefiniertes Beschreibungsfeld daneben. In der referenzierten Tabelle (Counties) können Sie zu "Relation view" gehen und unter der Tabelle gibt es ein Auswahlfeld "Choose field to display", in dem Sie den Wert auswählen, der neben CountyID Wert in der referenzierenden Tabelle angezeigt wird (Baronien). siehe auch: phpymadminWiki

-1

gehen für den Betrieb als Änderung myiasm InnoDB als Go

+0

Ich kann nicht viel Sinn machen, aber es scheint nicht viel mit fremden Schlüsseln zu tun zu haben. Vielleicht wäre etwas mehr Detail nützlich. –

Verwandte Themen