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.