information_schema.key_column_usage 学习

information_schema.key_column_usage 表可以查看索引列上的约束;

1、information_schema.key_column_usage 的常用列:

  1、constraint_catalog              :约束类型这个永远是def

  2、constraint_schema              :约束所在的数据库名

  3、constraint_name               :约束名

  4、table_catalog                 :表类型这个永远是def

  5、table_schema                  :表所在的数据库名

  6、column_name                  :索引所在的列名

  7、referenced_table_schema           :被引用表所在的数据库名

  8、referenced_table_name            :被引用的表名

  9、referenced_column_name           :被引用表的列名

2、例子:

通过information_schema.key_column_usage表来查看外键引用关系

  1、创建有主外键关系的表

create table teacher(
id int not null auto_increment,
name varchar(16) not null,
primary key pk_teacher(id)
) engine=innodb default char set utf8; create table student(
id int not null auto_increment,
name varchar(16) not null,
teacher_id int not null,
constraint pk_student__id primary key(id),
constraint fk_stuent__teacher_id foreign key(teacher_id) references teacher(id)
) engine=innodb default char set utf8;

  2、查看索引列上的约束

select * from KEY_COLUMN_USAGE where table_schema='tempdb' \G
*************************** 1. row ***************************
CONSTRAINT_CATALOG: def
CONSTRAINT_SCHEMA: tempdb
CONSTRAINT_NAME: PRIMARY
TABLE_CATALOG: def
TABLE_SCHEMA: tempdb
TABLE_NAME: student
COLUMN_NAME: id
ORDINAL_POSITION: 1
POSITION_IN_UNIQUE_CONSTRAINT: NULL
REFERENCED_TABLE_SCHEMA: NULL
REFERENCED_TABLE_NAME: NULL
REFERENCED_COLUMN_NAME: NULL
*************************** 2. row ***************************
CONSTRAINT_CATALOG: def
CONSTRAINT_SCHEMA: tempdb
CONSTRAINT_NAME: fk_stuent__teacher_id
TABLE_CATALOG: def
TABLE_SCHEMA: tempdb
TABLE_NAME: student
COLUMN_NAME: teacher_id
ORDINAL_POSITION: 1
POSITION_IN_UNIQUE_CONSTRAINT: 1
REFERENCED_TABLE_SCHEMA: tempdb
REFERENCED_TABLE_NAME: teacher
REFERENCED_COLUMN_NAME: id
*************************** 3. row ***************************
CONSTRAINT_CATALOG: def
CONSTRAINT_SCHEMA: tempdb
CONSTRAINT_NAME: PRIMARY
TABLE_CATALOG: def
TABLE_SCHEMA: tempdb
TABLE_NAME: teacher
COLUMN_NAME: id
ORDINAL_POSITION: 1
POSITION_IN_UNIQUE_CONSTRAINT: NULL
REFERENCED_TABLE_SCHEMA: NULL
REFERENCED_TABLE_NAME: NULL
REFERENCED_COLUMN_NAME: NULL
上一篇:web项目文件夹上传


下一篇:ORACLE中seq$表更新频繁的分析