Witam!
Szukam sposobu na znalezienie wszystkich kluczy obcych bazie. Albo kluczy obcych do pewnej tabeli. Chcę usunąć kilka tabel i klucze mi w tym przeszkadzają...
Z góry dzięki.
Witam!
Szukam sposobu na znalezienie wszystkich kluczy obcych bazie. Albo kluczy obcych do pewnej tabeli. Chcę usunąć kilka tabel i klucze mi w tym przeszkadzają...
Z góry dzięki.
Wydaje mi się, że MySQL w obecnej wersji nie posiada komendy listującej klucze obce. Możesz użyć:
SHOW CREATE TABLE nazwa_tabeli
żeby zobaczyć pełnego CREATE dla danej tabeli - tam też będą klucze.
Dzięki, chociaż to nie jest rozwiązanie... Musiałbym to dla setek tabel zrobić. Na razie radzę sobie tak, że skryptuję całą bazę i wyszukuję tekst "REFERENCES ...", ale to też nie jest najlepsze rozwiązanie.
np. http://www.devart.com/dbforge/mysql/studio/download.html ma coś takiego
W każdej bazie danych są takie magiczne tabele systemowe (mniejsza o to czy wszędzie fizycznie są one tabelami czy widokami).
W MySQL masz np. INFORMATION_SCHEMA.TABLE_CONSTRAINTS http://dev.mysql.com/doc/refman/5.5/en/table-constraints-table.html robiąc odpowiedniego select'a z tej tabeli, ewentualnie złączając z innymi możesz wybrać wartości jakie potrzebujesz.
Pomocna może być jeszcze INFORMATION_SCHEMA.KEY_COLUMN_USAGE http://dev.mysql.com/doc/refman/5.5/en/key-column-usage-table.html
I to jest właśnie to, czego szukałem. Dzięki.