Почему ключевое слово `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 не отображается для него.

Дальнейшее чтение ПОКАЗАТЬ КОЛОННЫ Синтаксис

Другие вопросы по тегам