Kilka razy potrzebowałem tego w Google, więc udostępniam swoje pytania / odpowiedzi.
105
Użyj w ten SHOW INDEX
sposób:
SHOW INDEX FROM [tablename]
Dokumenty: https://dev.mysql.com/doc/refman/5.0/en/show-index.html
my_table
MIEJSCA Key_name = 'index_to_check';Próbować:
Poinformuje Cię, czy w określonej kolumnie znajduje się jakiś indeks, bez konieczności znajomości nazwy nadanej indeksowi. Będzie również działać w procedurze składowanej (w przeciwieństwie do pokazywania indeksu)
źródło
możesz sprawdzić, czy w tabeli istnieje unikalny klucz
źródło
źródło
Użyj następującej instrukcji: SHOW INDEX FROM your_table
A następnie sprawdź wynik dla pól: wiersz ["Tabela"], wiersz ["Nazwa_klucza"]
Upewnij się, że poprawnie wpisałeś „Key_name”
źródło
wystarczy spojrzeć na układ tabel z CLI. ty byś zrobił
lub
źródło
Jeśli potrzebujesz funkcji, jeśli istnieje indeks kolumny (tutaj na pierwszym miejscu w kolejności) jako funkcja bazy danych, możesz użyć / adoptować ten kod. Jeśli chcesz sprawdzić, czy indeks w ogóle istnieje, niezależnie od pozycji w indeksie wielokolumnowym, po prostu usuń część „AND SEQ_IN_INDEX = 1”.
źródło
możesz użyć poniższej instrukcji SQL, aby sprawdzić, czy dana kolumna w tabeli została zindeksowana, czy nie
ponieważ sprzężenia są przeciwko INNODB_SYS_ *, więc indeksy dopasowania pochodzą tylko z tabel INNODB
źródło
Spróbuj użyć tego:
źródło
Nie możesz uruchomić konkretnego zapytania indeksu show, ponieważ spowoduje to błąd, jeśli indeks nie istnieje. Dlatego musisz pobrać wszystkie indeksy do tablicy i przejrzeć je w pętli, jeśli chcesz uniknąć błędów SQL.
Oto jak to robię. Pobieram wszystkie indeksy z tabeli (w tym przypadku
leads
), a następnie w pętli foreach sprawdzam, czy nazwa kolumny (w tym przypadkuprovince
) istnieje, czy nie.W ten sposób możesz naprawdę zawęzić atrybuty indeksu. Zrób
print_r
z$res
, aby zobaczyć, z czym możesz pracować.źródło