MySQL: How do I find out which tables reference a

2019-03-09 01:20发布

问题:

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?

回答1:

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

This works.



回答2:

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


回答3:

If you have phpMyAdmin installed, you can use its designer feature to visualize table relationships.

To use the designer, select a database, then look for the Designer tab.



回答4:

Look at the KEY_COLUMN_USAGE table in the iformation_schema schema.



回答5:

from the mysql command line: show table status



回答6:

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



回答7:

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.