Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  The INFORMATION_SCHEMA KEY_COLUMN_USAGE Table

28.3.16 INFORMATION_SCHEMA 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 = POSITION_IN_ UNIQUE_CONSTRAINT = NULL

    对于NDB:这个值总是NULL

  • 一行记录,具有以下属性:CONSTRAINT_NAME = 'CO'TABLE_NAME = 't3'COLUMN_NAME = 's2'ORDINAL_POSITION = POSITION_IN_UNIQUE_CONSTRAINT =