2009-04-16 20 views
25

テーブルを削除したいが、それは1つ以上の他のテーブルによって参照されている。データベース内の各テーブルを1つずつ見なくても、どのテーブルがこのテーブルを参照しているかを知るにはどうすればよいですか?MySQL:どのテーブルが特定のテーブルを参照しているかを調べるにはどうすればよいですか?

+2

http://stackoverflow.com/q/806989この質問よりも多くの票を獲得しています...これまでにこれが尋ねられ、回答されました。 – Fr0zenFyr

答えて

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

をなどから

ダウンロードリンク http://www.toadsoft.com/toadmysql/FreewareDownload.htm

あなたはInnoDBテーブルを使用している場合は、この1つのSHOW TABLEステータスを試してみてください。

-1

Toadを使用してロードすると、図を介して参照を表示できます。また、フロントエンドからSQLを渡すアプリコードがないことを確認してください。テーブルを削除すると、アプリが破損する可能性があります。 yourdatabasenameは 'T' これは動作しますhttp://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

+0

私はLinuxを使用しているので、あなたが提案するツールは動作しません。 –

+0

使用している場合はInnoDBはyourdatabasename LIKE 'T' http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html –

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

テーブルからのこの1つの のSHOW TABLE STATUSのを試してみてくださいreferential_constraintsはinformation_schemaに存在しません。私はこのデータベースで答えを探していましたが、見つけられませんでした。 MySQLバージョンは5.0.51a-24-log(Debian)です –

+0

私は5.1.31を使用しています –

-1

iformation_schemaスキーマのKEY_COLUMN_USAGEテーブルを参照してください。 mysqlコマンドラインから

-1

: ショーテーブルのステータス

-1

あなたはE.R.図を抽出することができますMySQLのワークベンチを試みることができます。これで、データベースのテーブルについて必要なものすべてを見つけることができます。

0

phpMyAdminがインストールされている場合は、designer featureを使用して表関係を視覚化できます。

enter image description here

デザイナータブを探して、その後、デザイナを使用するデータベースを選択します。

関連する問題