唯一索引

唯一索引不允许两行具有相同的索引值。如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据

将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在 employee 表中的职员姓氏 (lname) 列上,创建了唯一索引,则所有职员不能同姓。

主键

主键索引是唯一索引的特殊类型,数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义一个主键 将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。

它们的一些比较:
(1)对于主健/unique constraint, oracle/sql server/mysql等都会自动建立唯一索引

(2)主键不一定只包含一个字段,所以如果你在主键的其中一个字段建唯一索引还是必要的。
(3)主健可作外健,唯一索引不可, 
(4)主健不可为空,唯一索引可,
.