当我在MySQL中为下表执行show columns from Employee时...

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的结果集中?

最佳答案

MULPRI相反,UNI表示非唯一索引,并且在发出DESCRIBESHOW COLUMNS命令时显示在索引的第一行(或唯一列)中。

唯一的例外是


  如果一个键值中的一个以上适用于表的给定列,键将以PRI,UNI,MUL的顺序显示优先级最高的键。


firstName是复合索引name中的第二列,因此不会为其显示MUL

进一步阅读 SHOW COLUMNS Syntax

关于mysql - 为什么“MUL”关键字显示在Employee mysql命令的“show”列的“Key”列下?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45340749/

10-13 08:06