Проблем:
Искате да намерите имената на ограниченията в таблица в 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 .