私はテーブル内のすべての外部キーがインデックスされているフィールドを参照していることを確認するためにクイッククエリを実行しています。次のようにクエリの結果が重複して受け取られました。information_schema
私のコードは次のとおりです。
select table_name, column_name, index_name from statistics where table_name in (select referenced_table_name from key_column_usage where table_name='table' and table_schema='schema') and column_name in (select referenced_column_name from key_column_usage where table_name='table' and table_schema='schema') order by table_name;
私は複数の環境でこれを実行しているんだけど、何らかの理由で私は1つの特定の環境に重複した結果を受けています。テーブルはすべて同じように設定されているので、この動作の原因はわかりません。
提案がありますか?
これはInnoDBテーブルのためのものですか?参照された列が索引付けされていない場合、FK制約は最初に作成されていない可能性があります。 MySQLは1215でエラーになると私は信じています。索引はFK作成の前提条件です。 –
はい、InnoDBテーブルです。奇妙な振る舞いは、多くの人の環境でしか見つからない...私はこの問題を理解していない。私は重複した記録を持っている。各索引は2回リストされます。 – user3299633