Как получить список всех ограничений из конкретной базы данных?
Список ограничений из базы данных MySQL
Ответ 1
Используйте таблицу information_schema.table_constraints
, чтобы получить имена ограничений, определенных для каждой таблицы:
select *
from information_schema.table_constraints
where constraint_schema = 'YOUR_DB'
Используйте таблицу information_schema.key_column_usage
, чтобы получить поля в каждом из этих ограничений:
select *
from information_schema.key_column_usage
where constraint_schema = 'YOUR_DB'
Если вместо этого вы говорите о ограничениях внешнего ключа, используйте information_schema.referential_constraints
:
select *
from information_schema.referential_constraints
where constraint_schema = 'YOUR_DB'
Ответ 2
Отличный ответ от @Senseful.
Я представляю измененный запрос для тех, кто ищет список имен ограничений (а не другие детали/столбцы):
SELECT DISTINCT(constraint_name)
FROM information_schema.table_constraints
WHERE constraint_schema = 'YOUR_DB'
ORDER BY constraint_name ASC;
Ответ 3
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = "tabnam";