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
.