23.1.13. INFORMATION_SCHEMA KEY_COLUMN_USAGE表

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。

关注编程学问公众号