KEY_COLUMN_USAGE表
该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_CONSTRAINTNULL用于唯一和主键约束。对于外键约束,此列是所引用表在键中的序数位置。REFERENCED_TABLE_SCHEMA约束引用的模式的名称。
REFERENCED_TABLE_NAME约束引用的表的名称。
REFERENCED_COLUMN_NAME约束引用的列的名称。
假设有两个表名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 COFOREIGN KEY (s2)REFERENCES t1(s3) )ENGINE =InnoDB;
对于这两个表,该KEY_COLUMN_USAGE表具有两行:
一行
CONSTRAINT_NAME='PRIMARY',TABLE_NAME='t1',COLUMN_NAME='s3',ORDINAL_POSITION=1,POSITION_IN_UNIQUE_CONSTRAINT=NULL。对于
NDB:此值始终为NULL。- 一行
CONSTRAINT_NAME='CO',TABLE_NAME='t3',COLUMN_NAME='s2',ORDINAL_POSITION=1,POSITION_IN_UNIQUE_CONSTRAINT=1。
