0%

主键索引vs唯一索引

MySQL5.7默认数据库引擎是InnoDB,InnoDB数据表都要有主键,也就是主键索引,工作中算是常用到的。唯一索引用的较少,知道它跟普通索引的区别就是索引列要唯一,别的就不太清楚了,特此记录!

  1. 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的
  2. 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键
  3. 主键列不允许为空值,唯一性索引列允许空值
  4. 主键列在创建时,已经默认为非空+唯一索引
  5. 主键可以被其他表引用为外键,而唯一索引不能
  6. 一个表最多只能创建一个主键,但可以创建多个唯一索引
  7. 主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等