|
Spec-Zone .ru
спецификации, руководства, описания, API
|
KEY_COLUMN_USAGE
таблица описывает, у каких ключевых столбцов есть ограничения.
INFORMATION_SCHEMA Имя |
SHOW Имя
|
Комментарии |
|---|---|---|
CONSTRAINT_CATALOG |
def |
|
CONSTRAINT_SCHEMA |
||
CONSTRAINT_NAME |
||
TABLE_CATALOG |
def |
|
TABLE_SCHEMA |
||
TABLE_NAME |
||
COLUMN_NAME |
||
ORDINAL_POSITION |
||
POSITION_IN_UNIQUE_CONSTRAINT |
||
REFERENCED_TABLE_SCHEMA |
||
REFERENCED_TABLE_NAME |
||
REFERENCED_COLUMN_NAME |
Примечания:
Если ограничение является внешним ключом, то это - столбец внешнего ключа, не столбец что ссылки внешнего ключа.
Значение ORDINAL_POSITION позиция столбца в пределах
ограничения, не позиция столбца в пределах таблицы. Позиции столбца нумеруются, начинаясь 1.
Значение POSITION_IN_UNIQUE_CONSTRAINT NULL для ограничений уникального и первичного ключа. Для ограничений внешнего
ключа это - порядковая позиция в ключе таблицы, на которую ссылаются.
Предположите, что есть два табличных имени 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.
Одна строка с CONSTRAINT_NAME = 'CO', TABLE_NAME = 't3', COLUMN_NAME = 's2', ORDINAL_POSITION = 1, POSITION_IN_UNIQUE_CONSTRAINT =
1.