Problem:
Chcesz znaleźć nazwy ograniczeń w tabeli w MySQL.
Przykład:
Chcemy wyświetlić nazwy ograniczeń w tabeli student
.
Rozwiązanie:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Oto wynik:
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
uczeń | KLUCZ PODSTAWOWY | PODSTAWOWA |
uczeń | UNIKALNE | numer_osobisty |
uczeń | KLUCZ OBCY | student_ibfk_1 |
uczeń | SPRAWDŹ | student_chk_1 |
Dyskusja:
Użyj widoku table_constraints
w information_schema
schemat. Ten widok zawiera wiele kolumn, ale najważniejsze to table_name
, constraint_type
i constraint_name
. Kolumna nazwa_tabeli podaje nazwę tabeli, w której zdefiniowane jest ograniczenie, a kolumna constraint_name
zawiera nazwę ograniczenia. Kolumna constraint_type
wskazuje typ ograniczenia:PRIMARY KEY
dla typu klucza podstawowego FOREIGN KEY
dla typu klucza obcego UNIQUE
dla unikalnych wartości i CHECK
do sprawdzenia ograniczeń. W naszym przykładzie widać ograniczenie o nazwie PRIMARY
dla klucza podstawowego w student
stół. constraint_type
kolumna zawiera informacje o typie każdego ograniczenia; dla klucza podstawowego jest to PRIMARY KEY
.