Почему ключевое слово `MUL` отображается под столбцом`Key` для команды mysql `show columns from Employee`?
Когда я выполню show columns from Employee
в MySQL для следующих таблиц...
CREATE TABLE Employee (
id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
departmentId TINYINT UNSIGNED NOT NULL
COMMENT "CONSTRAINT FOREIGN KEY (departmentId) REFERENCES Department(id)",
firstName VARCHAR(20) NOT NULL,
lastName VARCHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
ext SMALLINT UNSIGNED NULL,
hireDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
leaveDate DATETIME NULL,
INDEX name (lastName, firstName),
INDEX (departmentId)
)
CREATE TABLE Department (
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(40),
UNIQUE (name)
)
... почему ключевое слово MUL
появляется в наборе результатов для столбца lastName
(а также для departmentId
) а не для firstName
?
1 ответ
Решение
MUL
в отличие от PRI
а также UNI
означает неуникальный индекс и отображается для первого (или единственного столбца) в индексе при выдаче DESCRIBE
или же SHOW COLUMNS
команда.
Единственное исключение из этого
Если к данному столбцу таблицы применяется более одного значения Key, Key отображает значение с наивысшим приоритетом в порядке PRI, UNI, MUL.
firstName
это второй столбец в составном индексе name
и поэтому MUL
не отображается для него.
Дальнейшее чтение ПОКАЗАТЬ КОЛОННЫ Синтаксис