誰かが作成した MySQL のデータベースがあります。データベースのドキュメントはありません。
テーブル間の関係を知るにはどうすればよいですか?
関係を簡単に見つけられるように、レポートを生成するクエリまたは手順はありますか?
スキーマ情報を調べて手動で把握することはできますが、関係レポートを生成できれば素晴らしいと思います。
誰かが作成した MySQL のデータベースがあります。データベースのドキュメントはありません。
テーブル間の関係を知るにはどうすればよいですか?
関係を簡単に見つけられるように、レポートを生成するクエリまたは手順はありますか?
スキーマ情報を調べて手動で把握することはできますが、関係レポートを生成できれば素晴らしいと思います。
以下の手順を実行すると、MySql Workbench で概要を取得できます。
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
プログラム的に話すより良い方法は、次のようにテーブルからデータを収集することです。
SELECT
`TABLE_SCHEMA`, -- Foreign key schema
`TABLE_NAME`, -- Foreign key table
`COLUMN_NAME`, -- Foreign key column
`REFERENCED_TABLE_SCHEMA`, -- Origin key schema
`REFERENCED_TABLE_NAME`, -- Origin key table
`REFERENCED_COLUMN_NAME` -- Origin key column
FROM
`INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` -- Will fail if user don't have privilege
WHERE
`TABLE_SCHEMA` = SCHEMA() -- Detect current schema in USE
AND `REFERENCED_TABLE_NAME` IS NOT NULL; -- Only tables with foreign keys
そしてもう一つは
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS;
SchemaSpy を試してください ( http://schemaspy.sourceforge.net/ ):
SchemaSpy は Java ベースのツール (Java 5 以上が必要) で、データベース内のスキーマのメタデータを分析し、そのメタデータをブラウザーで表示可能な形式で視覚的に表現します。
http://schemaspy.sourceforge.net/sample/からのサンプル出力の HTML ページのスクリーンショットを次に示します。
コマンドラインを使用したくない場合は、優れた GUI もあります: http://schemaspygui.sourceforge.net/
どちらのツールもオープン ソースであり、私の意見では、非常に軽量で使いやすいものです。あなたが説明した状況にあったときに、それらを数回使用しました。スキーマの概要と、さらに深く掘り下げるための詳細さえも取得します。(「異常」レポートをご覧ください。)
http://schemaspy.orgで SchemaSpy の今後のバージョンをチェックしてください。
もう 1 つの有効なオプションは、mysql ワークベンチ (を参照) をインストールすることです。「データベースから EER モデルを作成する」を試してみてください。テーブル間の関係を確実に確認できます。
SELECTs
データベースを使用するものはありますか ? それが関係の最良の源かもしれません。
あなたはinformation_scheme.KEY_COLUMN_USAGE
テーブルを見ることができます
提案されているように、KEY_COLUMN_USAGE ビューを使用して FK (外部キー参照) を一覧表示する簡単な方法があります。
SELECT CONCAT( table_name, '.',
column_name, ' -> ',
referenced_table_name, '.',
referenced_column_name ) AS list_of_fks
FROM information_schema.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_SCHEMA = (your schema name here)
AND REFERENCED_TABLE_NAME is not null
ORDER BY TABLE_NAME, COLUMN_NAME;
Mysql ワークベンチを使用することをお勧めします。ER図を生成するオプションがあります。phpmyadmin を使用している場合は、任意のテーブルを選択します。テーブル構造を確認できる構造タブがあります。うまくいけば、これは役に立ちます。