Я хочу удалить таблицу, но на нее ссылаются одна или несколько других таблиц. Как узнать, какие таблицы ссылаются на эту таблицу, без необходимости поочередно просматривать каждую из таблиц в базе данных?
MySQL: Как узнать, какие таблицы ссылаются на определенную таблицу?
Ответ 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. В этом вы можете найти все, что вам нужно о таблицах вашей базы данных.