Bazy danych - Szukanie tabeli zawierającej kolumnę o danej nazwie
W tym wpisie chciałbym odnotować uniwersalny sposób na znalezienie kolumny i zawierającej ją tabeli baz danych po wskazanej nazwie.
Kiedy to się może przydać?
Zagadnienie zarysowane we wstępie dotyka mnie szczególnie często, gdy analizuję projekt, który znam słabo bądź wcale. Zdarza się wtedy, że wiem jak mniej więcej może nazywać się kolumna w tabeli, tylko nie wiem, w której z nich, może się ona znajdować. Wtedy właśnie warto umieć przeszukać nazwy kolumn w danej bazie, po wskazanym wzorcu. Rozwiązanie, które znalazłem kiedyś na stackoverflow (źródło: tutaj) jest bardzo eleganckie, bo uniwersalne i możemy je wykonać na bazach: SQL Server, MariaDB, MySQL, PostgreSQL. Dlatego właśnie postanowiłem je zanotować na łamach strony.
Jak znaleźć kolumnę w bazie po nazwie?
Zapytanie jest dość proste i opiera się na danych z tabeli INFORMATION_SCHEMA.COLUMNS, która zawiera zarówno nazwy kolumn jak i tabel, do których należą. Zatem jeśli chcemy odszukać kolumnę zawierającą w nazwie frazę "FragmentNazwy", wystarczy wykonać co następuje:
SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE '%FragmentNazwy%' ORDER BY TABLE_NAME
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!