### 26.3.16 信息\_模式键\_柱子\_使用表

[](<>)

这[`KEY_COLUMN_USAGE`](information-schema-key-column-usage-table.html)表描述了哪些键列有约束。该表不提供有关功能键部分的信息，因为它们是表达式，并且该表仅提供有关列的信息。

这[`KEY_COLUMN_USAGE`](information-schema-key-column-usage-table.html)表有这些列：

-   `约束目录`

    约束所属的目录的名称。这个值总是`定义`.

-   `CONSTRAINT_SCHEMA`

    约束所属的架构（数据库）的名称。

-   `CONSTRAINT_NAME`

    约束的名称。

-   `表目录`

    表所属目录的名称。这个值总是`定义`.

-   `TABLE_SCHEMA`

    表所属的架构（数据库）的名称。

-   `TABLE_NAME`

    具有约束的表的名称。

-   `COLUMN_NAME`

    具有约束的列的名称。

    如果约束是外键，那么这是外键的列，而不是外键引用的列。

-   `ORDINAL_POSITION`

    列在约束中的位置，而不是列在表中的位置。列位置从 1 开始编号。

-   `POSITION_IN_UNIQUE_CONSTRAINT`

    `空值`用于唯一和主键约束。对于外键约束，此列是被引用表的键中的序号位置。

-   `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 CO FOREIGN KEY (s2) REFERENCES t1(s3)
) ENGINE=InnoDB;
```

对于这两个表，[`KEY_COLUMN_USAGE`](information-schema-key-column-usage-table.html)表有两行：

-   一排与`CONSTRAINT_NAME` = `'基本的'`, `TABLE_NAME` = `'t1'`, `COLUMN_NAME` = `'s3'`, `ORDINAL_POSITION` = `1`, `POSITION_IN_UNIQUE_CONSTRAINT` = `空值`.

    为了`新开发银行`: 这个值总是`空值`.

-   一排与`CONSTRAINT_NAME` = `“一氧化碳”`, `TABLE_NAME` = `'t3'`, `COLUMN_NAME` = `'s2'`, `ORDINAL_POSITION` = `1`, `POSITION_IN_UNIQUE_CONSTRAINT` = `1`.
