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
=1
、POSITION_IN_UNIQUE_CONSTRAINT
=NULL
を含む 1 つの行。NDB
の場合: この値は常にNULL
です。 CONSTRAINT_NAME
='CO'
、TABLE_NAME
='t3'
、COLUMN_NAME
='s2'
、ORDINAL_POSITION
=1
、POSITION_IN_UNIQUE_CONSTRAINT
=1
を含む 1 つの行。