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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM