Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak odczytać nazwę tabeli, do której "prowadzi" klucz obcy?
Forum PHP.pl > Forum > Bazy danych > MySQL
djgrin
Czesc wszystkim.
Mam nastepujacy problem: potrzebuje w php odczytac w jakikolwiek sposob nazwe tabeli, do której ustawiona jest referencja danego klucza obcego. Chodzi mi po prostu o zrobienie listy wybieralnej z wartosciami z tej tabeli w formularzu na stronie, na ktorej wstawia sie dane do tabeli z danym wlasnie kluczem obcym.
Sprowadza sie to jedynie do pytania czy istnieje jakas funkcja PHP (badz sprytne uzycie zapytania MySQL), ktore pozwala na odczytanie tego, co jest w definicji tabeli po slowie REFERENCES winksmiley.jpg...
Jesli ktos z Was zetknal sie z podobnym problemem (ktory powinien byc, sadze, dosc powszechny), prosze o jakiekolwiek rady winksmiley.jpg.

Z gory dzieki winksmiley.jpg
dr_bonzo
np. tak:
  1. SHOW CREATE TABLE kandydat;

i regexpem wyciagnij nazwe tabeli z :
  1. FOREIGN KEY (`adres_kontaktowy_id`) REFERENCES `adres` (`id`),
djgrin
No dzieki, jest to faktycznie jakis pomysl, choc wlasnie czegos takiego staralem sie uniknac. Po prostu zwieksza ilosc zapytan do bazy, a przy duzych tabelach staje sie to problemem.
W ostatecznosci jednak bede zmuszony uzyc takiej metody winksmiley.jpg...
Dzieki i czekam na dalsze sugestie winksmiley.jpg
prond
Informacje o referencjach kluczy obcych możesz wyciągnąć z tabeli `information_schema`.`KEY_COLUMN_USAGE`.

Masz tam kolumny REFERENCED_TABLE_SCHEMA, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME wskazujące kolumnę tabli, do której odnosi się dany klucz obcy.
djgrin
O prosze, to zabrzmialo ciekawie. Moglbym prosic jakies linki do informacji nt. tej bazy/tabeli? Poza tym u mnie w tej chwili jej nie ma (wersja 4.1.11), wiec chcialbym sie dowiedziec co musze zrobic, zeby sie pojawila.
Wszelkie informacje bardzo mile widziane i pozadane winksmiley.jpg
dr_bonzo
Cytat
Moglbym prosic jakies linki do informacji nt. tej bazy/tabeli?

manual mysqla + rzut okiem na stukture tabeli

Cytat
wiec chcialbym sie dowiedziec co musze zrobic, zeby sie pojawila.

Zmienic mysqla na nowsza wersje
djgrin
Dzieki, wlasnie o takie cos mi chodzilo. Po updacie mysqla faktycznie wystarczy rzucic okiem na ta tabele, zeby sie odnalezc winksmiley.jpg.
Jeszcze raz dzieki, juz "jestem w domu" winksmiley.jpg.
Pozdro
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.