2010-03-19 25 views
11

Używam phpmyadmin (php & mysql) i mam duże problemy z łączeniem tabel za pomocą kluczy obcych.Wartości pola klucza obcego phpMyAdmin obcego klucza

Otrzymuję ujemne wartości dla pola countyId (który jest kluczem obcym). Jednak jest to link do mojej drugiej tabeli grzywny i to jest w porządku.

Kiedy idę, aby dodać dane będzie pole drop dla CountyId i wartości wyglądać tak,

-1 

1- 

Oto moje alter stwierdzenie:

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

Jakoś nie wiem, czy to jest programowanie związane lub nie. Twoja instrukcja SQL wygląda dobrze. Nie mam wglądu w phpmyadmina i w związku z tym twoje pytanie brzmi bardziej jak "jak korzystać z aplikacji phpmyadmin". –

+0

Przejdź do SuperUser? – p4bl0

+4

Nie ma to nic wspólnego z zapytaniem ani z samym kluczem. Twoje pole wyboru do wyboru wartości nie ma ujemnego wpisu, w tym przypadku, bez względu na to, który wybierzesz, wprowadzisz wartość "1". Dlaczego pMA reprezentuje je w ten sposób; Nie wiem ... –

Odpowiedz

-1

sprawdzić, czy tabele korzystają z silnika MyIsam. W takim przypadku klucze obce nie są obsługiwane. Zamiast tego użyj InnoDB.

+0

Tak, obie tabele używają silnika InnoDB. –

+0

phpmyadmin domyślnie używa MyIsame, czy mimo to można to zmienić? Próbowałem szukać, ale niczego nie znalazłem. Bo właśnie zmieniłem tabele na InnoDB ... czy to może być problem? –

+0

Ustawieniem domyślnym mySQL jest myISAM, nie jest to opcja phpmyadmin. Sprawdź dokumentację MySql na temat silników DB: http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html – munissor

6

Możesz zmienić wygląd tego menu, używając opcji ForeignKeyDropdownOrder. (Zobacz PMA documentation).

przykład:

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

Jak wspomniano Lex to jest tak, jak phpMyAdmin wyświetla wartości. Jeśli widzisz „-1” lub „1” w tej rozwijanej listy, to po prostu 1.

9

Jak wyjaśniono na ServerFault:

To nie jest liczba negaitve, cechą phpMyAdmin jest pokazanie klucza obcego wartość i niestandardowe pole opisu obok niej. W przywołanej tabeli (Powiaty) możesz przejść do "Relacji", a pod tabelą znajduje się pole wyboru "Wybierz pole do wyświetlenia", w którym wybierasz wartość, która będzie wyświetlana obok wartości CountyID w tabeli odniesienia (Baronies). Zobacz także: phpymadminWiki

-1

iść do pracy niż zmiany myiasm do InnoDB niż idź

+0

Nie mogę tego zrozumieć, ale wydaje się, że nie ma to wiele wspólnego z kluczami obcymi. Być może przydałoby się trochę więcej szczegółów. –

Powiązane problemy