MySQL: How do I find out which tables reference a

2019-03-09 01:04发布

I want to drop a table but it is referenced by one or more other tables. How can I find out which tables are referencing this table without having to look at each of the tables in the database one by one?

7条回答
手持菜刀,她持情操
2楼-- · 2019-03-09 01:34
select table_name 
from information_schema.referential_constraints 
where referenced_table_name = 'parent table here';
查看更多
Rolldiameter
3楼-- · 2019-03-09 01:35

from the mysql command line: show table status

查看更多
对你真心纯属浪费
4楼-- · 2019-03-09 01:40
select table_name
from information_schema.KEY_COLUMN_USAGE
where table_schema = 'my_database'
and referenced_table_name = 'my_table_here';

This works.

查看更多
冷血范
5楼-- · 2019-03-09 01:40

Look at the KEY_COLUMN_USAGE table in the iformation_schema schema.

查看更多
冷血范
6楼-- · 2019-03-09 01:40

you could try MySql workbench which allows you to extract E.R. diagram. In this you can find all you need about tables of your database.

查看更多
老娘就宠你
7楼-- · 2019-03-09 01:42

Use Toad to load it up and you can view the references through the diagram. also make sure that you don't have any app code passing sql from the front-end, dropping the table may cause the app to break.

Download link http://www.toadsoft.com/toadmysql/FreewareDownload.htm

If you are using innoDB try this one SHOW TABLE STATUS FROM yourdatabasename LIKE 'T' http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

查看更多
登录 后发表回答