MySQL: How do I find out which tables reference a specific table?

谁都会走 提交于 2019-12-03 04:14:24

问题


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.



来源:https://stackoverflow.com/questions/754512/mysql-how-do-i-find-out-which-tables-reference-a-specific-table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!