自动增量与唯一键区别当您将它们都放在一张表中时?

Reg*_*ser 3 php mysql sql sql-server sql-server-2008

如果我在查询时没有在任何地方使用自动增量主键,那么表中的自动增量主键有什么用?

例如,我有一个表单,用户在其中注册自己的用户名/密码等,并填充如下表格。

user table

id int auto increment primary key
userid unique key 
passwd varchar
etc
etc
Run Code Online (Sandbox Code Playgroud)

每当我检查登录用户或任何其他查询时,我总是select * from tbname where userid = ? 在那里使用我有一个唯一索引,那么在 id 列上拥有主索引有什么用呢?

速度也会有差异吗?

编辑:我的用户名实际上是选择我注册的用户的用户名。

我已经在 mysql 和 sql server 下标记了这个问题,因为它可能属于两者。

Rya*_*yan 5

自动增量和键(主键或唯一键)是两个不同的东西。

键类型之间的区别是:

首要的关键:

  • 每桌只有一个
  • 不允许有空值
  • 主键是唯一的键标识符

唯一密钥:

  • 表中可以有许多唯一键
  • 允许空值

自动增量是完全不同的事情。

当您在列中选择自动增量时,插入记录时无需提供值。数据库将跟踪最后插入的递增 ID,下一次插入将使用之后的值(按您指定的数量递增,最常见的是 1)