0

特定のテーブルの外部キーを表示するためのスクリプトを1つ作成しました。

SELECT  i.CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS i
LEFT JOIN information_schema.KEY_COLUMN_USAGE k ON
i.CONSTRAINT_NAME = k.CONSTRAINT_NAME WHERE i.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND i.TABLE_NAME = 'sample';

ホストでこのコマンドを実行すると、table名前が。のすべてのデータベースで見つかった外部キー制約のリストが表示されます"sample"

しかし、私は特定のデータベース、サンプルテーブルが必要foreign keysです。

4

2 に答える 2

1

最後に追加するだけです

AND i.table_schema = '<the name of your database which is a schema>'

編集 :

左の結合をに変更します

LEFT JOIN information_schema.KEY_COLUMN_USAGE
   ON i.CONSTRAINT_NAME = k.CONSTRAINT_NAME AND 
      i.TABLE_SCHEMA = k.TABLE_SCHEMA

異なるスキーマで同じ名前の制約を見つけることができるからです。

mysqlのスキーマとデータベースとは

于 2012-10-04T05:17:57.010 に答える
0

このクエリを実行する前に、データベースを選択する必要があります。以下が役立つ場合があります。

USE YourDatabaseName

SELECT  i.CONSTRAINT_NAME
FROM information_schema.TABLE_CONSTRAINTS i
LEFT JOIN information_schema.KEY_COLUMN_USAGE k
ON i.CONSTRAINT_NAME = k.CONSTRAINT_NAME
WHERE i.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND i.TABLE_NAME = 'sample'
于 2012-10-04T05:18:17.273 に答える