У меня есть таблица, первичный ключ которой упоминается в нескольких других таблицах как внешний ключ. Например:
CREATE TABLE `X` (
`X_id` int NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`X_id`)
)
CREATE TABLE `Y` (
`Y_id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`X_id` int DEFAULT NULL,
PRIMARY KEY (`Y_id`),
CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
)
CREATE TABLE `Z` (
`Z_id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`X_id` int DEFAULT NULL,
PRIMARY KEY (`Z_id`),
CONSTRAINT `Z_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
)
Теперь я не знаю, сколько таблиц в базе данных, которые содержат внешние ключи в X, такие как таблицы Y и Z. Есть ли SQL-запрос, который я могу использовать для возврата:
- Список таблиц с внешними ключами в X
- И какие из этих таблиц действительно имеют значения во внешнем ключе
Справочное руководство по MySQL 5.5: «Ограничения InnoDB и FOREIGN KEY»
источник
Это решение будет отображать не только все отношения, но и имя ограничения, которое требуется в некоторых случаях (например, ограничение удаления):
Если вы хотите проверить таблицы в конкретной базе данных, добавьте следующее:
источник
Вы можете найти всю информацию, относящуюся к схеме, в мудро названной
information_schema
таблице.Вы можете проверить таблицу
REFERENTIAL_CONSTRAINTS
иKEY_COLUMN_USAGE
. Первый говорит вам, на какие таблицы ссылаются другие; последний расскажет вам, как связаны их поля.источник
Перечисление всех внешних ключей в БД, включая описание
ограничение на конкретный столбец в таблице таблицы
источник
Я написал небольшой bash onliner, который вы можете написать в скрипт, чтобы получить дружественный вывод:
mysql_references_to:
Таким образом, выполнение:
mysql_references_to transaccion
(где transaccion - это случайное имя таблицы) дает такой вывод:источник
Самый простой:
1. Откройте phpMyAdmin
2. Щелкните левой кнопкой мыши имя базы данных
3. В верхнем правом углу найдите вкладку «Дизайнер»
Все ограничения будут показаны там.
источник