Spec-Zone.ru › MySQL 8.4

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

    Имя столбца, на который ссылается ограничение.

Предположим, что есть две таблицы с именами 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 содержит две строки:

  • Одна строка с CONSTRAINT_NAME = 'PRIMARY', TABLE_NAME = 't1', COLUMN_NAME = 's3', ORDINAL_POSITION = 1, POSITION_IN_UNIQUE_CONSTRAINT = NULL.

    Для NDB: Это значение всегда NULL.

  • Одна строка с CONSTRAINT_NAME = 'CO', TABLE_NAME = 't3', COLUMN_NAME = 's2', ORDINAL_POSITION = 1, POSITION_IN_UNIQUE_CONSTRAINT = 1.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/information-schema-key-column-usage-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API