当我使用 MySQL Workbench 创建一个具有单个主键的简单表时,它不仅创建 PK 索引(很酷),而且还创建第二个唯一索引(?)。下面是一个示例输出:
CREATE TABLE `tbl_example` (
`tbl_example_ID` INT(10) UNSIGNED NOT NULL ,
`field1` VARCHAR(45) NULL ,
`field2` VARCHAR(45) NULL ,
PRIMARY KEY (`tbl_example_ID`) ,
UNIQUE INDEX `tbl_example_ID_UNIQUE` (`tbl_example_ID` ASC) )
ENGINE = MyISAM
据我了解,PK 假定唯一索引,因此 UNIQUE INDEX
行是不必要的,对吗?只是在更新一堆表格之前寻找一些确认。
最佳答案
你是对的。主键(对于 MySQL)是一个名为“PRIMARY KEY”的唯一索引。因此,在同一列上拥有主键和唯一索引是一种毫无意义的资源浪费。
关于MySQL Workbench 创建额外索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700573/