Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  INFORMATION_SCHEMA テーブル  /  INFORMATION_SCHEMA KEY_COLUMN_USAGE テーブル

21.10 INFORMATION_SCHEMA KEY_COLUMN_USAGE テーブル

KEY_COLUMN_USAGE テーブルは、どのキーカラムに制約があるかを説明します。

INFORMATION_SCHEMA SHOW 備考
CONSTRAINT_CATALOG   def
CONSTRAINT_SCHEMA    
CONSTRAINT_NAME    
TABLE_CATALOG   def
TABLE_SCHEMA    
TABLE_NAME    
COLUMN_NAME    
ORDINAL_POSITION    
POSITION_IN_UNIQUE_CONSTRAINT    
REFERENCED_TABLE_SCHEMA    
REFERENCED_TABLE_NAME    
REFERENCED_COLUMN_NAME    

:

  • 制約が外部キーの場合、これは外部キーのカラムで、外部キーが参照するカラムではありません。

  • ORDINAL_POSITION の値は制約内のカラムの位置であり、テーブル内のカラムの位置ではありません。カラムの位置には 1 から始まる番号が付けられています。

  • POSITION_IN_UNIQUE_CONSTRAINT の値は、一意の主キーの制約に対し NULL です。外部キーの制約の場合、これは、参照されているテーブルのキーの順序位置になります。

    次の定義を持つ t1 および t3 という 2 つのテーブルがあるとします。

    CREATE TABLE t1
    (
        s1 INT,
        s2 INT,
        s3 INT,
        PRIMARY KEY(s3)
    ) ENGINE=InnoDB;
    
    CREATE TABLE t3
    (
        s1 INT,
        s2 INT,
        s3 INT,
        KEY(s1),
        CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3)
    ) ENGINE=InnoDB;
    

    これらの 2 つのテーブルに対し、KEY_COLUMN_USAGE テーブルには次の 2 つの行があります。

    • CONSTRAINT_NAME = 'PRIMARY'TABLE_NAME = 't1'COLUMN_NAME = 's3'ORDINAL_POSITION = 1POSITION_IN_UNIQUE_CONSTRAINT = NULL を含む 1 つの行。

    • CONSTRAINT_NAME = 'CO'TABLE_NAME = 't3'COLUMN_NAME = 's2'ORDINAL_POSITION = 1POSITION_IN_UNIQUE_CONSTRAINT = 1 を含む 1 つの行。


User Comments
  Posted by James Goatcher on May 27, 2008
A quick way to list your FKs (Foreign Key references) using the KEY_COLUMN_USAGE view:

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;

This query does assume that the constraints and all referenced and referencing tables are in the same schema.
Sign Up Login You must be logged in to post a comment.