MySQL:如何找出哪些表引用特定的表?

时间:2009-04-16 02:19:58

标签: mysql foreign-keys

我想删除一个表,但它被一个或多个其他表引用。如何在不必逐个查看数据库中的每个表的情况下找出哪些表引用此表?

7 个答案:

答案 0 :(得分:66)

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

这很有效。

答案 1 :(得分:5)

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

答案 2 :(得分:1)

如果您安装了phpMyAdmin,则可以使用其designer feature来显示表格关系。

enter image description here

要使用设计器,请选择一个数据库,然后查找 Designer 标签。

答案 3 :(得分:-1)

使用Toad加载它,您可以通过图表查看引用。还要确保你没有从前端传递sql的任何应用程序代码,删除表可能会导致应用程序崩溃。

下载链接 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

答案 4 :(得分:-1)

查看information_schema架构中的KEY_COLUMN_USAGE表。

答案 5 :(得分:-1)

从mysql命令行

: 显示表状态

答案 6 :(得分:-1)

您可以尝试MySql工作台,它允许您提取E.R.图表。在这里,您可以找到有关数据库表的所有信息。