当我在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
的结果集中? 最佳答案
MUL
与PRI
相反,UNI
表示非唯一索引,并且在发出DESCRIBE
或SHOW COLUMNS
命令时显示在索引的第一行(或唯一列)中。
唯一的例外是
如果一个键值中的一个以上适用于表的给定列,键将以PRI,UNI,MUL的顺序显示优先级最高的键。firstName
是复合索引name
中的第二列,因此不会为其显示MUL
。
进一步阅读 SHOW COLUMNS Syntax
关于mysql - 为什么“MUL”关键字显示在Employee mysql命令的“show”列的“Key”列下?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45340749/