我想删除一个表,但它被一个或多个其他表引用。如何在不必逐个查看数据库中的每个表的情况下找出哪些表引用此表?
答案 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)
答案 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)
: 显示表状态
答案 6 :(得分:-1)
您可以尝试MySql工作台,它允许您提取E.R.图表。在这里,您可以找到有关数据库表的所有信息。