• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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_CONSTRAINT

      NULL用于唯一和主键约束。对于外键约束,此列是所引用表在键中的序数位置。

    • REFERENCED_TABLE_SCHEMA

      约束引用的模式的名称。

    • REFERENCED_TABLE_NAME

      约束引用的表的名称。

    • REFERENCED_COLUMN_NAME

      约束引用的列的名称。

    假设有两个表名t1t3并且具有以下定义:

    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表具有两行:

    • 一行CONSTRAINT_NAME='PRIMARY'TABLE_NAME='t1'COLUMN_NAME='s3'ORDINAL_POSITION=1POSITION_IN_UNIQUE_CONSTRAINT=NULL

      对于NDB:此值始终为NULL

    • 一行CONSTRAINT_NAME='CO'TABLE_NAME='t3'COLUMN_NAME='s2'ORDINAL_POSITION=1POSITION_IN_UNIQUE_CONSTRAINT=1