[MySQL]任意のカラムを参照しているテーブルを調べる

information_schemaデータベースのKEY_COLUMN_USAGEテーブルの中を検索することで調べることができる。

SELECT TABLE_NAME FROM information_schema.KEY_COLUMN_USAGE
WHERE COLUMN_NAME='column_name'/* 任意のカラム名 */

またTABLE_CONSTRAINTSテーブルとREFERENCED_TABLE_NAMEカラムも条件に追加することで外部キーとして参照しているテーブルを確認することができる。

SELECT * FROM information_schema.KEY_COLUMN_USAGE kcu
INNER JOIN information_schema.TABLE_CONSTRAINTS tc ON kcu.CONSTRAINT_NAME=tc.CONSTRAINT_NAME
WHERE COLUMN_NAME='column_name'/* 任意のカラム名 */
AND REFERENCED_TABLE_NAME='table_name'/* 任意のテーブル名 */
AND tc.CONSTRAINT_TYPE='FOREIGN KEY'

参考

MySQL 外部キーの参照状態を調べる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

eighteen + 1 =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください