KEY_COLUMN_USAGE表描述了具有约束的键列。
标准名称 |
SHOW名称 |
注释 |
CONSTRAINT_CATALOG |
|
NULL |
CONSTRAINT_SCHEMA |
|
|
CONSTRAINT_NAME |
|
|
TABLE_CATALOG |
|
|
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:
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;
对于这两个表,KEY_COLUMN_USAGE表有两行:
o 一行含有CONSTRAINT_NAME='PRIMARY', TABLE_NAME='t1', COLUMN_NAME='s3', ORDINAL_POSITION=1, POSITION_IN_UNIQUE_CONSTRAINT=NULL。
o 另一行含有CONSTRAINT_NAME='CO', TABLE_NAME='t3', COLUMN_NAME='s2', ORDINAL_POSITION=1, POSITION_IN_UNIQUE_CONSTRAINT=1。