MySQL 8.0 リファレンスマニュアル


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

26.16 INFORMATION_SCHEMA KEY_COLUMN_USAGE テーブル

KEY_COLUMN_USAGE テーブルは、どのキーカラムに制約があるかを説明します。 このテーブルは式であり、カラムに関する情報のみを提供するため、関数キー部分に関する情報は提供しません。

KEY_COLUMN_USAGE テーブルには、次のカラムがあります:

  • CONSTRAINT_CATALOG

    制約が属するカタログの名前。 この値は常に def です。

  • CONSTRAINT_SCHEMA

    制約が属するスキーマ (データベース) の名前。

  • CONSTRAINT_NAME

    制約の名前。

  • TABLE_CATALOG

    テーブルが属するカタログの名前。 この値は常に def です。

  • TABLE_SCHEMA

    テーブルが属するスキーマ (データベース) の名前。

  • TABLE_NAME

    制約があるテーブルの名前。

  • COLUMN_NAME

    制約があるカラムの名前。

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

  • ORDINAL_POSITION

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

  • POSITION_IN_UNIQUE_CONSTRAINT

    一意制約および主キー制約用の NULL。 外部キー制約の場合、このカラムは参照されるテーブルのキー内の順序位置です。

  • REFERENCED_TABLE_SCHEMA

    制約によって参照されるスキーマの名前。

  • REFERENCED_TABLE_NAME

    制約によって参照されるテーブルの名前。

  • REFERENCED_COLUMN_NAME

    制約によって参照されるカラムの名前。

次の定義を持つ 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 つの行。

    NDB の場合: この値は常に NULL です。

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


関連キーワード:  テーブル, SCHEMA, INFORMATION, INNODB, TABLE, 制約, COLUMN, カラム, NAME, 名前