Советы и подсказки по MariaDB
Это часть серии быстрых советов и рекомендаций, которые я накопил за год и которые, как мне кажется, могут быть полезны другим.
Если у вас есть похожие краткие советы и рекомендации, пожалуйста, оставьте комментарий.
Все ограничения внешних ключей
Хорошо спроектированная база данных связывает свои таблицы друг с другом с помощью отношений внешних ключей, чтобы обеспечить целостность данных. Но когда в базе данных сотни или даже тысячи таблиц, поиск всех таблиц, связанных с конкретной таблицей, которую необходимо изменить, может стать огромной проблемой.
Приведенный ниже запрос найдет все ограничения внешнего ключа между столбцами с определенным именем столбца.
SET @DatabaseName := 'test_db';
SET @ColumnName := 'dept_no';
SELECT concat(rc.unique_constraint_schema, '.', rc.referenced_table_name) AS `Primary table`,
concat(rc.constraint_schema, '.', rc.table_name) AS `Foreign table`,
rc.constraint_name AS `Constraint name`
FROM information_schema.referential_constraints rc
JOIN information_schema.key_column_usage cu ON rc.constraint_schema = cu.table_schema
AND rc.table_name = cu.table_name
AND rc.constraint_name = cu.constraint_name
WHERE rc.constraint_schema = @DatabaseName
AND cu.COLUMN_NAME = @ColumnName
ORDER BY rc.constraint_schema,
rc.table_name;