このページは機械翻訳したものです。
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 つの行。