MySql - 默认情况下主键是唯一的吗?

Roe*_*rel 31 mysql primary-key unique-key

如果我在MySql中将列定义为主键,默认情况下它是否也是唯一键还是我还需要将其定义为唯一键(如果我希望它是唯一的)?

我看到了这个问题b/w主键和唯一键什么区别,它解释了两者之间的区别,但没有完全回答我的问题.默认情况下PK是UK还是我需要明确定义它.

Rah*_*thi 39

主键在每个SQL中始终是唯一的.你不必明确地将它定义为UNIQUE.

旁注:您只能在表中使用一个主键,并且它永远不会允许空值.此外,表中只能有一个主键约束(因为创建主键的目的是唯一标识表中的行),但表中可以有多个唯一键约束.

例:

员工详细信息表,其中EmpID为主键,EmpPhoneNo为唯一键.

  • 另一点:一个表只能有一个PRIMARY KEY**约束,但它可以有你想要的任意数量的UNIQUE KEY约束 (2认同)
  • 实际上,唯一键和主键之间还有更多区别,例如主键不能为 NULL。但这不是问题。 (2认同)

Jak*_*zak 7

根据定义,主键始终是唯一的。不仅在 MySQL 中。所以你不需要任何额外的唯一键。