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_CONSTRAINTNULLдля уникальных и первичных ключей. Для внешних ключей этот столбец — порядковый номер в ключе таблицы, на которую ссылаются. -
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.