Поделиться через


KEY_COLUMN_USAGE

применяется:помечено галочкой Databricks SQL помечено галочкой Databricks Runtime 11.3 LTS и выше помечено галочкой только для Unity Catalog

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

INFORMATION_SCHEMA.KEY_COLUMN_USAGE перечисляет столбцы, относящиеся к ограничениям первичного или внешнего ключа, в каталоге.

На возвращаемые строки накладываются ограничения, связанные с таблицами, в зависимости от привилегий пользователя.

Определение

Отношение KEY_COLUMN_USAGE содержит следующие столбцы:

Имя. Тип данных Допускает значение NULL Стандарт Описание
CONSTRAINT_CATALOG STRING Нет Да Каталог, содержащий ограничение.
CONSTRAINT_SCHEMA STRING Нет Да Схема, содержащая ограничение.
CONSTRAINT_NAME STRING Нет Да Имя ограничения.
TABLE_CATALOG STRING Нет Да Каталог, содержащий таблицу.
TABLE_SCHEMA STRING Нет Да Схема, содержащая таблицу.
TABLE_NAME STRING Нет Да Имя таблицы, в которой определено ограничение.
COLUMN_NAME STRING Нет Да Имя столбца.
ORDINAL_POSITION INTEGER Нет Да Позиция столбца в ключе (начиная с 1).
POSITION_IN_UNIQUE_CONSTRAINT INTEGER Да Да Для внешнего ключа позиция (начиная с 1) столбца в родительском уникальном или первичном ключе, в противном случае NULL.

Ограничения

К отношению KEY_COLUMN_USAGE применяются следующие ограничения:

Класс Имя. Список столбцов Описание
Первичный ключ KEY_COL_USG_PK CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME, COLUMN_NAME Уникально идентифицирует отношение.
Уникальный ключ KEY_COL_USG_OP_UK CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME, ORDINAL_POSITION Уникально определяет отношение.
Уникальный ключ KEY_COL_USG_PIUK_UK CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME, POSITION_IN_UNIQUE_CONSTRAINT Уникально идентифицирует отношение.
Внешний ключ KEY_COL_USG_COLUMNS_FK TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME Ссылки COLUMNS.
Внешний ключ KEY_COL_USG_TAB_CONS_FK CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME Ссылки TABLE_CONSTRAINTS.

Примеры

> SELECT constraint_name, column_name
    FROM information_schema.key_column_usage
    WHERE table_schema = 'information_schema'
      AND table_name = 'tables';