Проблем:
Искате да намерите имената на ограниченията в таблица в MySQL.
Пример:
Искаме да покажем имената на ограниченията в таблицата student
.
Решение:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Ето резултата:
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
ученик | ПЪРВИЧЕН КЛЮЧ | ОСНОВНО |
ученик | УНИКАЛНО | личен_номер |
ученик | ВЪНШЕН КЛЮЧ | student_ibfk_1 |
ученик | ПРОВЕРКА | student_chk_1 |
Дискусия:
Използвайте изгледа table_constraints
в information_schema
схема. Този изглед съдържа много колони, но най-важните са table_name
, constraint_type
и constraint_name
. Колоната table_name ви дава името на таблицата, в която е дефинирано ограничението, а колоната constraint_name
съдържа името на ограничението. Колоната constraint_type
указва типа на ограничението:PRIMARY KEY
за тип първичен ключ, FOREIGN KEY
за типа външен ключ, UNIQUE
за уникалните стойности и CHECK
за проверка на ограничението. В нашия пример можете да видите ограничението с име PRIMARY
за първичния ключ в student
маса. constraint_type
колоната ви дава информация за типа на всяко ограничение; за първичния ключ това е PRIMARY KEY
.