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
=1
、POSITION_IN_UNIQUE_CONSTRAINT
=NULL
を含む 1 つの行。CONSTRAINT_NAME
='CO'
、TABLE_NAME
='t3'
、COLUMN_NAME
='s2'
、ORDINAL_POSITION
=1
、POSITION_IN_UNIQUE_CONSTRAINT
=1
を含む 1 つの行。