Подтвердить что ты не робот

MySQL: Как узнать, какие таблицы ссылаются на определенную таблицу?

Я хочу удалить таблицу, но на нее ссылаются одна или несколько других таблиц. Как узнать, какие таблицы ссылаются на эту таблицу, без необходимости поочередно просматривать каждую из таблиц в базе данных?

4b9b3361

Ответ 1

select table_name
from information_schema.KEY_COLUMN_USAGE
where table_schema = 'my_database'
and referenced_table_name = 'my_table_here';

Это работает.

Ответ 2

select table_name 
from information_schema.referential_constraints 
where referenced_table_name = 'parent table here';

Ответ 3

Если у вас установлен phpMyAdmin, вы можете использовать конструктор для визуализации связей таблицы.

введите описание изображения здесь

Чтобы использовать конструктор, выберите базу данных, а затем найдите вкладку Дизайнер.

Ответ 4

Используйте Toad, чтобы загрузить его, и вы можете просмотреть ссылки по диаграмме. также убедитесь, что у вас нет кода приложения, передающего sql из front-end, выключение таблицы может привести к поломке приложения.

Ссылка для скачивания http://www.toadsoft.com/toadmysql/FreewareDownload.htm

Если вы используете innoDB, попробуйте этот SHOW TABLE STATUS FROM yourdatabasename LIKE 'T' http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

Ответ 5

Посмотрите таблицу KEY_COLUMN_USAGE в схеме iformation_schema.

Ответ 6

из командной строки mysql: показать статус таблицы

Ответ 7

вы можете попробовать MySql workbench, который позволяет вам извлечь диаграмму E.R. В этом вы можете найти все, что вам нужно о таблицах вашей базы данных.