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


KEY_COLUMN_USAGE

применимо:установлен флажок Databricks SQL установлен флажок Databricks Runtime 11.3 LTS и выше установлен флажок Unity Catalog

Внимание

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

INFORMATION_SCHEMA.KEY_COLUMN_USAGE перечисляет columns ограничений первичного или внешнего ключа в catalog.

Возвращаемые строки ограничены ограничениями на tablesв зависимости от привилегий пользователя.

Определение

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

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

Ограничения

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

Класс Имя. Column List Description
Первичный ключ 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';