テーブルまたは列へのすべての外部キーを表示するにはどうすればいいですか? 質問する

テーブルまたは列へのすべての外部キーを表示するにはどうすればいいですか? 質問する

MySQLでは、特定のテーブルや特定の列を指すすべての外部キー制約のリストを取得するにはどうすればいいでしょうか?これは、このOracleの質問ただし、MySQL の場合です。

ベストアンサー1

テーブルの場合:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = (SELECT DATABASE()) AND
  REFERENCED_TABLE_NAME = '<table>' \G

列の場合:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = (SELECT DATABASE()) AND
  REFERENCED_TABLE_NAME = '<table>' AND
  REFERENCED_COLUMN_NAME = '<column>' \G

基本的には、条項内REFERENCED_TABLE_NAMEで変更します。REFERENCED_COLUMN_NAMEWHERE

おすすめ記事